summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2013-05-15 20:47:44 +1000
committerBen Skeggs <bskeggs@redhat.com>2013-05-15 21:11:10 +1000
commit1edb5d7ae450a32fe6607d536653cf733444e7e2 (patch)
treeb6edba11e201817fde0d448ee14254ac7f01eef3
parentc18439f759bec267a3b67d375dcbfeb8a6fd7b6a (diff)
downloadxorg-driver-xf86-video-nouveau-1edb5d7ae450a32fe6607d536653cf733444e7e2.tar.gz
nvc0-nve0: split shader code from their headers
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
-rw-r--r--src/Makefile.am2
-rw-r--r--src/nvc0_accel.c28
-rw-r--r--src/nvc0_shader.h444
-rw-r--r--src/nve0_shader.h440
-rw-r--r--src/shader/exac8nvc0.fp28
-rw-r--r--src/shader/exac8nvc0.fpc26
-rw-r--r--src/shader/exac8nve0.fp28
-rw-r--r--src/shader/exac8nve0.fpc28
-rw-r--r--src/shader/exacanvc0.fp28
-rw-r--r--src/shader/exacanvc0.fpc26
-rw-r--r--src/shader/exacanve0.fp28
-rw-r--r--src/shader/exacanve0.fpc30
-rw-r--r--src/shader/exacmnvc0.fp28
-rw-r--r--src/shader/exacmnvc0.fpc26
-rw-r--r--src/shader/exacmnve0.fp28
-rw-r--r--src/shader/exacmnve0.fpc30
-rw-r--r--src/shader/exas8nvc0.fp28
-rw-r--r--src/shader/exas8nvc0.fpc18
-rw-r--r--src/shader/exas8nve0.fp28
-rw-r--r--src/shader/exas8nve0.fpc20
-rw-r--r--src/shader/exasanvc0.fp28
-rw-r--r--src/shader/exasanvc0.fpc26
-rw-r--r--src/shader/exasanve0.fp28
-rw-r--r--src/shader/exasanve0.fpc30
-rw-r--r--src/shader/exascnvc0.fp28
-rw-r--r--src/shader/exascnvc0.fpc12
-rw-r--r--src/shader/exascnve0.fp28
-rw-r--r--src/shader/exascnve0.fpc14
-rw-r--r--src/shader/videonvc0.fp28
-rw-r--r--src/shader/videonvc0.fpc38
-rw-r--r--src/shader/videonve0.fp28
-rw-r--r--src/shader/videonve0.fpc22
-rw-r--r--src/shader/xfrm2nvc0.vp28
-rw-r--r--src/shader/xfrm2nvc0.vpc70
-rw-r--r--src/shader/xfrm2nve0.vp28
-rw-r--r--src/shader/xfrm2nve0.vpc70
36 files changed, 960 insertions, 888 deletions
diff --git a/src/Makefile.am b/src/Makefile.am
index bf9c967..17c6389 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -76,8 +76,6 @@ EXTRA_DIST = hwdefs/nv_3ddefs.xml.h \
nv04_accel.h \
nv50_accel.h \
nvc0_accel.h \
- nvc0_shader.h \
- nve0_shader.h \
compat-api.h \
vl_hwmc.c \
vl_hwmc.h
diff --git a/src/nvc0_accel.c b/src/nvc0_accel.c
index 4b3745f..df6a6b8 100644
--- a/src/nvc0_accel.c
+++ b/src/nvc0_accel.c
@@ -22,8 +22,32 @@
#include "nv_include.h"
#include "nvc0_accel.h"
-#include "nvc0_shader.h"
-#include "nve0_shader.h"
+
+#include "shader/xfrm2nvc0.vp"
+#include "shader/videonvc0.fp"
+
+#include "shader/exascnvc0.fp"
+#include "shader/exacmnvc0.fp"
+#include "shader/exacanvc0.fp"
+#include "shader/exasanvc0.fp"
+#include "shader/exas8nvc0.fp"
+#include "shader/exac8nvc0.fp"
+
+#include "shader/xfrm2nve0.vp"
+#include "shader/videonve0.fp"
+
+#include "shader/exascnve0.fp"
+#include "shader/exacmnve0.fp"
+#include "shader/exacanve0.fp"
+#include "shader/exasanve0.fp"
+#include "shader/exas8nve0.fp"
+#include "shader/exac8nve0.fp"
+
+#define NVC0PushProgram(pNv,addr,code) do { \
+ const unsigned size = sizeof(code) / sizeof(code[0]); \
+ PUSH_DATAu((pNv)->pushbuf, (pNv)->scratch, (addr), size); \
+ PUSH_DATAp((pNv)->pushbuf, (code), size); \
+} while(0)
void
NVC0SyncToVBlank(PixmapPtr ppix, BoxPtr box)
diff --git a/src/nvc0_shader.h b/src/nvc0_shader.h
deleted file mode 100644
index 41bc065..0000000
--- a/src/nvc0_shader.h
+++ /dev/null
@@ -1,444 +0,0 @@
-#ifndef __NVC0_SHADER_H__
-#define __NVC0_SHADER_H__
-
-#define NVC0PushProgram(pNv,addr,code) do { \
- const unsigned size = sizeof(code) / sizeof(code[0]); \
- PUSH_DATAu((pNv)->pushbuf, (pNv)->scratch, (addr), size); \
- PUSH_DATAp((pNv)->pushbuf, (code), size); \
-} while(0)
-
-static uint32_t
-NVC0VP_Transform2[] = {
- 0x00020461,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x000ff000,
- 0x00000000, /* VP_ATTR_EN[0x000] */
- 0x0001033f, /* VP_ATTR_EN[0x080] */
- 0x00000000, /* VP_ATTR_EN[0x100] */
- 0x00000000,
- 0x00000000, /* VP_ATTR_EN[0x200] */
- 0x00000000,
- 0x00000000, /* VP_ATTR_EN[0x300] */
- 0x00000000,
- 0x0033f000, /* VP_EXPORT_EN[0x040] */
- 0x00000000, /* VP_EXPORT_EN[0x0c0] */
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000, /* VP_EXPORT_EN[0x2c0] */
- 0x00000000,
- 0xfff01c66,
- 0x06000080,
- 0x03f01c66,
- 0x0a7e0070,
- 0xfff01c26,
- 0x06000090,
- 0x00009c40,
- 0x58004000,
- 0x3000dc40,
- 0x58004000,
- 0x60011c40,
- 0x58004000,
- 0x10109c40,
- 0x30044000,
- 0x4010dc40,
- 0x30064000,
- 0x70111c40,
- 0x30084000,
- 0x20209c20,
- 0x50004000,
- 0x5030dc20,
- 0x50004000,
- 0x80411c20,
- 0x50004000,
- 0x10411c00,
- 0xc8000000,
- 0x10209c40,
- 0x58000000,
- 0x1030dc40,
- 0x58000000,
- 0x90201c40,
- 0x58004000,
- 0xa0305c40,
- 0x58004000,
- 0x03f01c26,
- 0x0a7e0080,
- 0xfff01c26,
- 0x060000a0,
- 0xb0009c40,
- 0x58004000,
- 0xe000dc40,
- 0x58004000,
- 0x10011c40,
- 0x58004001,
- 0xc0109c40,
- 0x30044000,
- 0xf010dc40,
- 0x30064000,
- 0x20111c40,
- 0x30084001,
- 0xd0209c20,
- 0x50004000,
- 0x0030dc20,
- 0x50004001,
- 0x30411c20,
- 0x50004001,
- 0x10411c00,
- 0xc8000000,
- 0x10209c40,
- 0x58000000,
- 0x1030dc40,
- 0x58000000,
- 0x40201c40,
- 0x58004001,
- 0x50305c40,
- 0x58004001,
- 0x03f01c26,
- 0x0a7e0090,
- 0x00001de7,
- 0x80000000,
-};
-
-static uint32_t
-NVC0FP_Source[] = {
- 0x00021462,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x80000000,
- 0x0000000a,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x0000000f,
- 0x00000000,
- 0xfff01c00,
- 0xc07e007c, /* linterp f32 $r0 v[$r63+0x7c] */
- 0x10001c00,
- 0xc8000000, /* rcp f32 $r0 $r0 */
- 0x03f05c40,
- 0xc07e0084, /* pinterp f32 $r1 $r0 v[$r63+0x84] */
- 0x03f01c40,
- 0xc07e0080, /* pinterp f32 $r0 $r0 v[$r63+0x80] */
- 0xfc001e86,
- 0x8013c000, /* tex { $r0,1,2,3 } $t0 { $r0,1 } */
- 0x00001de7,
- 0x80000000, /* exit */
-};
-
-static uint32_t
-NVC0FP_Composite[] = {
- 0x00021462,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x80000000,
- 0x00000a0a,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x0000000f,
- 0x00000000,
- 0xfff01c00,
- 0xc07e007c, /* linterp f32 $r0 v[$r63+0x7c] */
- 0x10001c00,
- 0xc8000000, /* rcp f32 $r0 $r0 */
- 0x03f0dc40,
- 0xc07e0094, /* pinterp f32 $r3 $r0 v[$r63+0x94] */
- 0x03f09c40,
- 0xc07e0090, /* pinterp f32 $r2 $r0 v[$r63+0x90] */
- 0xfc211e86,
- 0x80120001, /* tex { _,_,_,$r4 } $t1 { $r2,3 } */
- 0x03f05c40,
- 0xc07e0084, /* pinterp f32 $r1 $r0 v[$r63+0x84] */
- 0x03f01c40,
- 0xc07e0080, /* pinterp f32 $r0 $r0 v[$r63+0x80] */
- 0xfc001e86,
- 0x8013c000, /* tex { $r0,1,2,3 } $t0 { $r0,1 } */
- 0x1030dc40,
- 0x58000000, /* mul ftz rn f32 $r3 $r3 $r4 */
- 0x10209c40,
- 0x58000000, /* mul ftz rn f32 $r2 $r2 $r4 */
- 0x10105c40,
- 0x58000000, /* mul ftz rn f32 $r1 $r1 $r4 */
- 0x10001c40,
- 0x58000000, /* mul ftz rn f32 $r0 $r0 $r4 */
- 0x00001de7,
- 0x80000000, /* exit */
-};
-
-static uint32_t
-NVC0FP_CAComposite[] = {
- 0x00021462, /* 0x0000c000 = USES_KIL, MULTI_COLORS */
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x80000000, /* FRAG_COORD_UMASK = 0x8 */
- 0x00000a0a, /* FP_INTERP[0x080], 0022 0022 */
- 0x00000000, /* FP_INTERP[0x0c0], 0 = OFF */
- 0x00000000, /* FP_INTERP[0x100], 1 = FLAT */
- 0x00000000, /* FP_INTERP[0x140], 2 = PERSPECTIVE */
- 0x00000000, /* FP_INTERP[0x180], 3 = LINEAR */
- 0x00000000, /* FP_INTERP[0x1c0] */
- 0x00000000, /* FP_INTERP[0x200] */
- 0x00000000, /* FP_INTERP[0x240] */
- 0x00000000, /* FP_INTERP[0x280] */
- 0x00000000, /* FP_INTERP[0x2c0] */
- 0x00000000, /* FP_INTERP[0x300] */
- 0x00000000,
- 0x0000000f, /* FP_RESULT_MASK (0x8000 Face ?) */
- 0x00000000, /* 0x2 = FragDepth, 0x1 = SampleMask */
- 0xfff01c00,
- 0xc07e007c, /* linterp f32 $r0 v[$r63+0x7c] */
- 0x10001c00,
- 0xc8000000, /* rcp f32 $r0 $r0 */
- 0x03f0dc40,
- 0xc07e0094, /* pinterp f32 $r3 $r0 v[$r63+0x94] */
- 0x03f09c40,
- 0xc07e0090, /* pinterp f32 $r2 $r0 v[$r63+0x90] */
- 0xfc211e86,
- 0x8013c001, /* tex { $r4,5,6,7 } $t1 { $r2,3 } */
- 0x03f05c40,
- 0xc07e0084, /* pinterp f32 $r1 $r0 v[$r63+0x84] */
- 0x03f01c40,
- 0xc07e0080, /* pinterp f32 $r0 $r0 v[$r63+0x80] */
- 0xfc001e86,
- 0x8013c000, /* tex { $r0,1,2,3 } $t0 { $r0,1 } */
- 0x1c30dc40,
- 0x58000000, /* mul ftz rn f32 $r3 $r3 $r7 */
- 0x18209c40,
- 0x58000000, /* mul ftz rn f32 $r2 $r2 $r6 */
- 0x14105c40,
- 0x58000000, /* mul ftz rn f32 $r1 $r1 $r5 */
- 0x10001c40,
- 0x58000000, /* mul ftz rn f32 $r0 $r0 $r4 */
- 0x00001de7,
- 0x80000000, /* exit */
-};
-
-static uint32_t
-NVC0FP_CACompositeSrcAlpha[] = {
- 0x00021462,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x80000000,
- 0x00000a0a,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x0000000f,
- 0x00000000,
- 0xfff01c00,
- 0xc07e007c, /* linterp f32 $r0 v[$r63+0x7c] */
- 0x10001c00,
- 0xc8000000, /* rcp f32 $r0 $r0 */
- 0x03f0dc40,
- 0xc07e0084, /* pinterp f32 $r3 $r0 v[$r63+0x84] */
- 0x03f09c40,
- 0xc07e0080, /* pinterp f32 $r2 $r0 v[$r63+0x80] */
- 0xfc211e86,
- 0x80120000, /* tex { _,_,_,$r4 } $t0 { $r2,3 } */
- 0x03f05c40,
- 0xc07e0094, /* pinterp f32 $r1 $r0 v[$r63+0x94] */
- 0x03f01c40,
- 0xc07e0090, /* pinterp f32 $r0 $r0 v[$r63+0x90] */
- 0xfc001e86,
- 0x8013c001, /* tex { $r0,1,2,3 } $t1 { $r0,1 } */
- 0x1030dc40,
- 0x58000000, /* mul ftz rn f32 $r3 $r3 $r4 */
- 0x10209c40,
- 0x58000000, /* mul ftz rn f32 $r2 $r2 $r4 */
- 0x10105c40,
- 0x58000000, /* mul ftz rn f32 $r1 $r1 $r4 */
- 0x10001c40,
- 0x58000000, /* mul ftz rn f32 $r0 $r0 $r4 */
- 0x00001de7,
- 0x80000000, /* exit */
-};
-
-static uint32_t
-NVC0FP_Source_A8[] = {
- 0x00021462,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x80000000,
- 0x0000000a,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x0000000f,
- 0x00000000,
- 0xfff01c00,
- 0xc07e007c, /* linterp f32 $r0 v[$r63+0x7c] */
- 0x10001c00,
- 0xc8000000, /* rcp f32 $r0 $r0 */
- 0x03f05c40,
- 0xc07e0084, /* pinterp f32 $r1 $r0 v[$r63+0x84] */
- 0x03f01c40,
- 0xc07e0080, /* pinterp f32 $r0 $r0 v[$r63+0x80] */
- 0xfc001e86,
- 0x80120000, /* tex { _ _ _ $r0 } $t0 { $r0 $r1 } */
- 0x0000dde4,
- 0x28000000, /* mov b32 $r3 $r0 */
- 0x00009de4,
- 0x28000000, /* mov b32 $r2 $r0 */
- 0x00005de4,
- 0x28000000, /* mov b32 $r1 $r0 */
- 0x00001de7,
- 0x80000000, /* exit */
-};
-
-static uint32_t
-NVC0FP_Composite_A8[] = {
- 0x00021462,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x80000000,
- 0x00000a0a,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x0000000f,
- 0x00000000,
- 0xfff01c00,
- 0xc07e007c, /* linterp f32 $r0 v[$r63+0x7c] */
- 0x10001c00,
- 0xc8000000, /* rcp f32 $r0 $r0 */
- 0x03f0dc40,
- 0xc07e0094, /* pinterp f32 $r3 $r0 v[$r63+0x94] */
- 0x03f09c40,
- 0xc07e0090, /* pinterp f32 $r2 $r0 v[$r63+0x90] */
- 0xfc205e86,
- 0x80120001, /* tex { _ _ _ $r1 } $t1 { $r2 $r3 } */
- 0x03f0dc40,
- 0xc07e0084, /* pinterp f32 $r3 $r0 v[$r63+0x84] */
- 0x03f09c40,
- 0xc07e0080, /* pinterp f32 $r2 $r0 v[$r63+0x80] */
- 0xfc201e86,
- 0x80120000, /* tex { _ _ _ $r0 } $t0 { $r2 $r3 } */
- 0x0400dc40,
- 0x58000000, /* mul ftz rn f32 $r3 $r0 $r1 */
- 0x0c009de4,
- 0x28000000, /* mov b32 $r2 $r3 */
- 0x0c005de4,
- 0x28000000, /* mov b32 $r1 $r3 */
- 0x0c001de4,
- 0x28000000, /* mov b32 $r0 $r3 */
- 0x00001de7,
- 0x80000000, /* exit */
-};
-
-static uint32_t
-NVC0FP_NV12[] = {
- 0x00021462,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x80000000,
- 0x00000a0a,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x0000000f,
- 0x00000000,
- 0xfff09c00,
- 0xc07e007c,
- 0x10209c00,
- 0xc8000000,
- 0x0bf01c40,
- 0xc07e0080,
- 0x0bf05c40,
- 0xc07e0084,
- 0xfc001e86,
- 0x80120000,
- 0x00015c40,
- 0x58004000,
- 0x1050dc20,
- 0x50004000,
- 0x20511c20,
- 0x50004000,
- 0x30515c20,
- 0x50004000,
- 0x0bf01c40,
- 0xc07e0080,
- 0x0bf05c40,
- 0xc07e0084,
- 0xfc001e86,
- 0x80130001,
- 0x4000dc40,
- 0x30064000,
- 0x50011c40,
- 0x30084000,
- 0x60015c40,
- 0x300a4000,
- 0x70101c40,
- 0x30064000,
- 0x90109c40,
- 0x300a4000,
- 0x80105c40,
- 0x30084000,
- 0x00001de7,
- 0x80000000,
-};
-
-#endif
diff --git a/src/nve0_shader.h b/src/nve0_shader.h
deleted file mode 100644
index 5d8e9dd..0000000
--- a/src/nve0_shader.h
+++ /dev/null
@@ -1,440 +0,0 @@
-#ifndef __NVE0_SHADER_H__
-#define __NVE0_SHADER_H__
-
-static uint32_t
-NVE0VP_Transform2[] = {
- 0x00020461,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x000ff000,
- 0x00000000, /* VP_ATTR_EN[0x000] */
- 0x0001033f, /* VP_ATTR_EN[0x080] */
- 0x00000000, /* VP_ATTR_EN[0x100] */
- 0x00000000,
- 0x00000000, /* VP_ATTR_EN[0x200] */
- 0x00000000,
- 0x00000000, /* VP_ATTR_EN[0x300] */
- 0x00000000,
- 0x0033f000, /* VP_EXPORT_EN[0x040] */
- 0x00000000, /* VP_EXPORT_EN[0x0c0] */
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000, /* VP_EXPORT_EN[0x2c0] */
- 0x00000000,
- 0xfff01c66,
- 0x06000080,
- 0x03f01c66,
- 0x0a7e0070,
- 0xfff01c26,
- 0x06000090,
- 0x00009c40,
- 0x58004000,
- 0x3000dc40,
- 0x58004000,
- 0x60011c40,
- 0x58004000,
- 0x10109c40,
- 0x30044000,
- 0x4010dc40,
- 0x30064000,
- 0x70111c40,
- 0x30084000,
- 0x20209c20,
- 0x50004000,
- 0x5030dc20,
- 0x50004000,
- 0x80411c20,
- 0x50004000,
- 0x10411c00,
- 0xc8000000,
- 0x10209c40,
- 0x58000000,
- 0x1030dc40,
- 0x58000000,
- 0x90201c40,
- 0x58004000,
- 0xa0305c40,
- 0x58004000,
- 0x03f01c26,
- 0x0a7e0080,
- 0xfff01c26,
- 0x060000a0,
- 0xb0009c40,
- 0x58004000,
- 0xe000dc40,
- 0x58004000,
- 0x10011c40,
- 0x58004001,
- 0xc0109c40,
- 0x30044000,
- 0xf010dc40,
- 0x30064000,
- 0x20111c40,
- 0x30084001,
- 0xd0209c20,
- 0x50004000,
- 0x0030dc20,
- 0x50004001,
- 0x30411c20,
- 0x50004001,
- 0x10411c00,
- 0xc8000000,
- 0x10209c40,
- 0x58000000,
- 0x1030dc40,
- 0x58000000,
- 0x40201c40,
- 0x58004001,
- 0x50305c40,
- 0x58004001,
- 0x03f01c26,
- 0x0a7e0090,
- 0x00001de7,
- 0x80000000,
-};
-
-static uint32_t
-NVE0FP_Source[] = {
- 0x00021462,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x80000000,
- 0x0000000a,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x0000000f,
- 0x00000000,
- 0xfff01c00,
- 0xc07e007c, /* linterp f32 $r0 v[$r63+0x7c] */
- 0x10001c00,
- 0xc8000000, /* rcp f32 $r0 $r0 */
- 0x03f05c40,
- 0xc07e0084, /* pinterp f32 $r1 $r0 v[$r63+0x84] */
- 0x03f01c40,
- 0xc07e0080, /* pinterp f32 $r0 $r0 v[$r63+0x80] */
- 0xfc001e86,
- 0x8013c000, /* tex { $r0,1,2,3 } $t0 { $r0,1 } */
- 0x00001de6,
- 0xf0000000, /* texbar */
- 0x00001de7,
- 0x80000000, /* exit */
-};
-
-static uint32_t
-NVE0FP_Composite[] = {
- 0x00021462,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x80000000,
- 0x00000a0a,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x0000000f,
- 0x00000000,
- 0xfff01c00,
- 0xc07e007c, /* linterp f32 $r0 v[$r63+0x7c] */
- 0x10001c00,
- 0xc8000000, /* rcp f32 $r0 $r0 */
- 0x03f0dc40,
- 0xc07e0094, /* pinterp f32 $r3 $r0 v[$r63+0x94] */
- 0x03f09c40,
- 0xc07e0090, /* pinterp f32 $r2 $r0 v[$r63+0x90] */
- 0xfc211e86,
- 0x80120001, /* tex { _,_,_,$r4 } $t1 { $r2,3 } */
- 0x00001de6,
- 0xf0000000, /* texbar */
- 0x03f05c40,
- 0xc07e0084, /* pinterp f32 $r1 $r0 v[$r63+0x84] */
- 0x03f01c40,
- 0xc07e0080, /* pinterp f32 $r0 $r0 v[$r63+0x80] */
- 0xfc001e86,
- 0x8013c000, /* tex { $r0,1,2,3 } $t0 { $r0,1 } */
- 0x00001de6,
- 0xf0000000, /* texbar */
- 0x1030dc40,
- 0x58000000, /* mul ftz rn f32 $r3 $r3 $r4 */
- 0x10209c40,
- 0x58000000, /* mul ftz rn f32 $r2 $r2 $r4 */
- 0x10105c40,
- 0x58000000, /* mul ftz rn f32 $r1 $r1 $r4 */
- 0x10001c40,
- 0x58000000, /* mul ftz rn f32 $r0 $r0 $r4 */
- 0x00001de7,
- 0x80000000, /* exit */
-};
-
-static uint32_t
-NVE0FP_CAComposite[] = {
- 0x00021462, /* 0x0000c000 = USES_KIL, MULTI_COLORS */
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x80000000, /* FRAG_COORD_UMASK = 0x8 */
- 0x00000a0a, /* FP_INTERP[0x080], 0022 0022 */
- 0x00000000, /* FP_INTERP[0x0c0], 0 = OFF */
- 0x00000000, /* FP_INTERP[0x100], 1 = FLAT */
- 0x00000000, /* FP_INTERP[0x140], 2 = PERSPECTIVE */
- 0x00000000, /* FP_INTERP[0x180], 3 = LINEAR */
- 0x00000000, /* FP_INTERP[0x1c0] */
- 0x00000000, /* FP_INTERP[0x200] */
- 0x00000000, /* FP_INTERP[0x240] */
- 0x00000000, /* FP_INTERP[0x280] */
- 0x00000000, /* FP_INTERP[0x2c0] */
- 0x00000000, /* FP_INTERP[0x300] */
- 0x00000000,
- 0x0000000f, /* FP_RESULT_MASK (0x8000 Face ?) */
- 0x00000000, /* 0x2 = FragDepth, 0x1 = SampleMask */
- 0xfff01c00,
- 0xc07e007c, /* linterp f32 $r0 v[$r63+0x7c] */
- 0x10001c00,
- 0xc8000000, /* rcp f32 $r0 $r0 */
- 0x03f0dc40,
- 0xc07e0094, /* pinterp f32 $r3 $r0 v[$r63+0x94] */
- 0x03f09c40,
- 0xc07e0090, /* pinterp f32 $r2 $r0 v[$r63+0x90] */
- 0xfc211e86,
- 0x8013c001, /* tex { $r4,5,6,7 } $t1 { $r2,3 } */
- 0x00001de6,
- 0xf0000000, /* texbar */
- 0x03f05c40,
- 0xc07e0084, /* pinterp f32 $r1 $r0 v[$r63+0x84] */
- 0x03f01c40,
- 0xc07e0080, /* pinterp f32 $r0 $r0 v[$r63+0x80] */
- 0xfc001e86,
- 0x8013c000, /* tex { $r0,1,2,3 } $t0 { $r0,1 } */
- 0x00001de6,
- 0xf0000000, /* texbar */
- 0x1c30dc40,
- 0x58000000, /* mul ftz rn f32 $r3 $r3 $r7 */
- 0x18209c40,
- 0x58000000, /* mul ftz rn f32 $r2 $r2 $r6 */
- 0x14105c40,
- 0x58000000, /* mul ftz rn f32 $r1 $r1 $r5 */
- 0x10001c40,
- 0x58000000, /* mul ftz rn f32 $r0 $r0 $r4 */
- 0x00001de7,
- 0x80000000, /* exit */
-};
-
-static uint32_t
-NVE0FP_CACompositeSrcAlpha[] = {
- 0x00021462,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x80000000,
- 0x00000a0a,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x0000000f,
- 0x00000000,
- 0xfff01c00,
- 0xc07e007c, /* linterp f32 $r0 v[$r63+0x7c] */
- 0x10001c00,
- 0xc8000000, /* rcp f32 $r0 $r0 */
- 0x03f0dc40,
- 0xc07e0084, /* pinterp f32 $r3 $r0 v[$r63+0x84] */
- 0x03f09c40,
- 0xc07e0080, /* pinterp f32 $r2 $r0 v[$r63+0x80] */
- 0xfc211e86,
- 0x80120000, /* tex { _,_,_,$r4 } $t0 { $r2,3 } */
- 0x00001de6,
- 0xf0000000, /* texbar */
- 0x03f05c40,
- 0xc07e0094, /* pinterp f32 $r1 $r0 v[$r63+0x94] */
- 0x03f01c40,
- 0xc07e0090, /* pinterp f32 $r0 $r0 v[$r63+0x90] */
- 0xfc001e86,
- 0x8013c001, /* tex { $r0,1,2,3 } $t1 { $r0,1 } */
- 0x00001de6,
- 0xf0000000, /* texbar */
- 0x1030dc40,
- 0x58000000, /* mul ftz rn f32 $r3 $r3 $r4 */
- 0x10209c40,
- 0x58000000, /* mul ftz rn f32 $r2 $r2 $r4 */
- 0x10105c40,
- 0x58000000, /* mul ftz rn f32 $r1 $r1 $r4 */
- 0x10001c40,
- 0x58000000, /* mul ftz rn f32 $r0 $r0 $r4 */
- 0x00001de7,
- 0x80000000, /* exit */
-};
-
-static uint32_t
-NVE0FP_Source_A8[] = {
- 0x00021462,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x80000000,
- 0x0000000a,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x0000000f,
- 0x00000000,
- 0xfff01c00,
- 0xc07e007c, /* linterp f32 $r0 v[$r63+0x7c] */
- 0x10001c00,
- 0xc8000000, /* rcp f32 $r0 $r0 */
- 0x03f05c40,
- 0xc07e0084, /* pinterp f32 $r1 $r0 v[$r63+0x84] */
- 0x03f01c40,
- 0xc07e0080, /* pinterp f32 $r0 $r0 v[$r63+0x80] */
- 0xfc001e86,
- 0x80120000, /* tex { _ _ _ $r0 } $t0 { $r0 $r1 } */
- 0x00001de6,
- 0xf0000000, /* texbar */
- 0x0000dde4,
- 0x28000000, /* mov b32 $r3 $r0 */
- 0x00009de4,
- 0x28000000, /* mov b32 $r2 $r0 */
- 0x00005de4,
- 0x28000000, /* mov b32 $r1 $r0 */
- 0x00001de7,
- 0x80000000, /* exit */
-};
-
-static uint32_t
-NVE0FP_Composite_A8[] = {
- 0x00021462,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x80000000,
- 0x00000a0a,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x0000000f,
- 0x00000000,
- 0xfff01c00,
- 0xc07e007c, /* linterp f32 $r0 v[$r63+0x7c] */
- 0x10001c00,
- 0xc8000000, /* rcp f32 $r0 $r0 */
- 0x03f0dc40,
- 0xc07e0094, /* pinterp f32 $r3 $r0 v[$r63+0x94] */
- 0x03f09c40,
- 0xc07e0090, /* pinterp f32 $r2 $r0 v[$r63+0x90] */
- 0xfc205e86,
- 0x80120001, /* tex { _ _ _ $r1 } $t1 { $r2 $r3 } */
- 0x03f0dc40,
- 0xc07e0084, /* pinterp f32 $r3 $r0 v[$r63+0x84] */
- 0x03f09c40,
- 0xc07e0080, /* pinterp f32 $r2 $r0 v[$r63+0x80] */
- 0xfc201e86,
- 0x80120000, /* tex { _ _ _ $r0 } $t0 { $r2 $r3 } */
- 0x00001de6,
- 0xf0000000, /* texbar */
- 0x0400dc40,
- 0x58000000, /* mul ftz rn f32 $r3 $r0 $r1 */
- 0x0c009de4,
- 0x28000000, /* mov b32 $r2 $r3 */
- 0x0c005de4,
- 0x28000000, /* mov b32 $r1 $r3 */
- 0x0c001de4,
- 0x28000000, /* mov b32 $r0 $r3 */
- 0x00001de7,
- 0x80000000, /* exit */
-};
-
-static uint32_t
-NVE0FP_NV12[] = {
- 0x00021462,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x80000000,
- 0x0000000a,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x00000000,
- 0x0000000f,
- 0x00000000,
- 0xe23282e7, 0x2c220202, /* sched 0x2e 0x28 0x23 0x2e 0x20 0x20 0xc2 */
- 0xfff09c00, 0xc07e007c, /* interp pass f32 $r2 a[0x7c] */
- 0x10209c00, 0xc8000000, /* rcp f32 $r2 $r2 */
- 0x0bf01c40, 0xc07e0080, /* interp mul f32 $r0 a[0x80] $r2 0 */
- 0x0bf05c40, 0xc07e0084, /* interp mul f32 $r1 a[0x84] $r2 0 */
- 0xfc011e86, 0x80120000, /* tex t { # # # $r4 } t2d c[0x0] { $r0 $r1 } */
- 0xfc001f06, 0x80130001, /* tex p { # # $r0 $r1 } t2d c[0x4] { $r0 $r1 } */
- 0x04001de6, 0xf0000000, /* texbar 1 */
- 0x02004287, 0x22004a22, /* sched 0x28 0x4 0x20 0x20 0xa2 0x4 0x20 */
- 0x00415c40, 0x58004000, /* mul ftz rn f32 $r5 $r4 c0[0] */
- 0x1050dc20, 0x50004000, /* add ftz rn f32 $r3 $r5 c0[0x4] */
- 0x20511c20, 0x50004000, /* add ftz rn f32 $r4 $r5 c0[0x8] */
- 0x30515c20, 0x50004000, /* add ftz rn f32 $r5 $r5 c0[0xc] */
- 0x00001de6, 0xf0000000, /* texbar 0 */
- 0x4000dc40, 0x30064000, /* fma ftz rn f32 $r3 $r0 c0[0x10] $r3 */
- 0x50011c40, 0x30084000, /* fma ftz rn f32 $r4 $r0 c0[0x14] $r4 */
- 0x42004287, 0x200002e0, /* sched 0x28 0x4 0x20 0x4 0x2e 0 0 */
- 0x60015c40, 0x300a4000, /* fma ftz rn f32 $r5 $r0 c0[0x18] $r5 */
- 0x70101c40, 0x30064000, /* fma ftz rn f32 $r0 $r1 c0[0x1c] $r3 */
- 0x90109c40, 0x300a4000, /* fma ftz rn f32 $r2 $r1 c0[0x24] $r5 */
- 0x80105c40, 0x30084000, /* fma ftz rn f32 $r1 $r1 c0[0x20] $r4 */
- 0x00001de7, 0x80000000, /* exit */
-};
-
-#endif
diff --git a/src/shader/exac8nvc0.fp b/src/shader/exac8nvc0.fp
new file mode 100644
index 0000000..c7db275
--- /dev/null
+++ b/src/shader/exac8nvc0.fp
@@ -0,0 +1,28 @@
+#ifndef ENVYAS
+static uint32_t
+NVC0FP_Composite_A8[] = {
+ 0x00021462,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x80000000,
+ 0x00000a0a,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x0000000f,
+ 0x00000000,
+#include "exac8nvc0.fpc"
+};
+#else
+
+#endif
diff --git a/src/shader/exac8nvc0.fpc b/src/shader/exac8nvc0.fpc
new file mode 100644
index 0000000..3afea72
--- /dev/null
+++ b/src/shader/exac8nvc0.fpc
@@ -0,0 +1,26 @@
+ 0xfff01c00,
+ 0xc07e007c, /* linterp f32 $r0 v[$r63+0x7c] */
+ 0x10001c00,
+ 0xc8000000, /* rcp f32 $r0 $r0 */
+ 0x03f0dc40,
+ 0xc07e0094, /* pinterp f32 $r3 $r0 v[$r63+0x94] */
+ 0x03f09c40,
+ 0xc07e0090, /* pinterp f32 $r2 $r0 v[$r63+0x90] */
+ 0xfc205e86,
+ 0x80120001, /* tex { _ _ _ $r1 } $t1 { $r2 $r3 } */
+ 0x03f0dc40,
+ 0xc07e0084, /* pinterp f32 $r3 $r0 v[$r63+0x84] */
+ 0x03f09c40,
+ 0xc07e0080, /* pinterp f32 $r2 $r0 v[$r63+0x80] */
+ 0xfc201e86,
+ 0x80120000, /* tex { _ _ _ $r0 } $t0 { $r2 $r3 } */
+ 0x0400dc40,
+ 0x58000000, /* mul ftz rn f32 $r3 $r0 $r1 */
+ 0x0c009de4,
+ 0x28000000, /* mov b32 $r2 $r3 */
+ 0x0c005de4,
+ 0x28000000, /* mov b32 $r1 $r3 */
+ 0x0c001de4,
+ 0x28000000, /* mov b32 $r0 $r3 */
+ 0x00001de7,
+ 0x80000000, /* exit */
diff --git a/src/shader/exac8nve0.fp b/src/shader/exac8nve0.fp
new file mode 100644
index 0000000..eeb2413
--- /dev/null
+++ b/src/shader/exac8nve0.fp
@@ -0,0 +1,28 @@
+#ifndef ENVYAS
+static uint32_t
+NVE0FP_Composite_A8[] = {
+ 0x00021462,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x80000000,
+ 0x00000a0a,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x0000000f,
+ 0x00000000,
+#include "exac8nve0.fpc"
+};
+#else
+
+#endif
diff --git a/src/shader/exac8nve0.fpc b/src/shader/exac8nve0.fpc
new file mode 100644
index 0000000..7d341d9
--- /dev/null
+++ b/src/shader/exac8nve0.fpc
@@ -0,0 +1,28 @@
+ 0xfff01c00,
+ 0xc07e007c, /* linterp f32 $r0 v[$r63+0x7c] */
+ 0x10001c00,
+ 0xc8000000, /* rcp f32 $r0 $r0 */
+ 0x03f0dc40,
+ 0xc07e0094, /* pinterp f32 $r3 $r0 v[$r63+0x94] */
+ 0x03f09c40,
+ 0xc07e0090, /* pinterp f32 $r2 $r0 v[$r63+0x90] */
+ 0xfc205e86,
+ 0x80120001, /* tex { _ _ _ $r1 } $t1 { $r2 $r3 } */
+ 0x03f0dc40,
+ 0xc07e0084, /* pinterp f32 $r3 $r0 v[$r63+0x84] */
+ 0x03f09c40,
+ 0xc07e0080, /* pinterp f32 $r2 $r0 v[$r63+0x80] */
+ 0xfc201e86,
+ 0x80120000, /* tex { _ _ _ $r0 } $t0 { $r2 $r3 } */
+ 0x00001de6,
+ 0xf0000000, /* texbar */
+ 0x0400dc40,
+ 0x58000000, /* mul ftz rn f32 $r3 $r0 $r1 */
+ 0x0c009de4,
+ 0x28000000, /* mov b32 $r2 $r3 */
+ 0x0c005de4,
+ 0x28000000, /* mov b32 $r1 $r3 */
+ 0x0c001de4,
+ 0x28000000, /* mov b32 $r0 $r3 */
+ 0x00001de7,
+ 0x80000000, /* exit */
diff --git a/src/shader/exacanvc0.fp b/src/shader/exacanvc0.fp
new file mode 100644
index 0000000..8254306
--- /dev/null
+++ b/src/shader/exacanvc0.fp
@@ -0,0 +1,28 @@
+#ifndef ENVYAS
+static uint32_t
+NVC0FP_CAComposite[] = {
+ 0x00021462, /* 0x0000c000 = USES_KIL, MULTI_COLORS */
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x80000000, /* FRAG_COORD_UMASK = 0x8 */
+ 0x00000a0a, /* FP_INTERP[0x080], 0022 0022 */
+ 0x00000000, /* FP_INTERP[0x0c0], 0 = OFF */
+ 0x00000000, /* FP_INTERP[0x100], 1 = FLAT */
+ 0x00000000, /* FP_INTERP[0x140], 2 = PERSPECTIVE */
+ 0x00000000, /* FP_INTERP[0x180], 3 = LINEAR */
+ 0x00000000, /* FP_INTERP[0x1c0] */
+ 0x00000000, /* FP_INTERP[0x200] */
+ 0x00000000, /* FP_INTERP[0x240] */
+ 0x00000000, /* FP_INTERP[0x280] */
+ 0x00000000, /* FP_INTERP[0x2c0] */
+ 0x00000000, /* FP_INTERP[0x300] */
+ 0x00000000,
+ 0x0000000f, /* FP_RESULT_MASK (0x8000 Face ?) */
+ 0x00000000, /* 0x2 = FragDepth, 0x1 = SampleMask */
+#include "exacanvc0.fpc"
+};
+#else
+
+#endif
diff --git a/src/shader/exacanvc0.fpc b/src/shader/exacanvc0.fpc
new file mode 100644
index 0000000..2fef0d9
--- /dev/null
+++ b/src/shader/exacanvc0.fpc
@@ -0,0 +1,26 @@
+ 0xfff01c00,
+ 0xc07e007c, /* linterp f32 $r0 v[$r63+0x7c] */
+ 0x10001c00,
+ 0xc8000000, /* rcp f32 $r0 $r0 */
+ 0x03f0dc40,
+ 0xc07e0094, /* pinterp f32 $r3 $r0 v[$r63+0x94] */
+ 0x03f09c40,
+ 0xc07e0090, /* pinterp f32 $r2 $r0 v[$r63+0x90] */
+ 0xfc211e86,
+ 0x8013c001, /* tex { $r4,5,6,7 } $t1 { $r2,3 } */
+ 0x03f05c40,
+ 0xc07e0084, /* pinterp f32 $r1 $r0 v[$r63+0x84] */
+ 0x03f01c40,
+ 0xc07e0080, /* pinterp f32 $r0 $r0 v[$r63+0x80] */
+ 0xfc001e86,
+ 0x8013c000, /* tex { $r0,1,2,3 } $t0 { $r0,1 } */
+ 0x1c30dc40,
+ 0x58000000, /* mul ftz rn f32 $r3 $r3 $r7 */
+ 0x18209c40,
+ 0x58000000, /* mul ftz rn f32 $r2 $r2 $r6 */
+ 0x14105c40,
+ 0x58000000, /* mul ftz rn f32 $r1 $r1 $r5 */
+ 0x10001c40,
+ 0x58000000, /* mul ftz rn f32 $r0 $r0 $r4 */
+ 0x00001de7,
+ 0x80000000, /* exit */
diff --git a/src/shader/exacanve0.fp b/src/shader/exacanve0.fp
new file mode 100644
index 0000000..c4f9afa
--- /dev/null
+++ b/src/shader/exacanve0.fp
@@ -0,0 +1,28 @@
+#ifndef ENVYAS
+static uint32_t
+NVE0FP_CAComposite[] = {
+ 0x00021462, /* 0x0000c000 = USES_KIL, MULTI_COLORS */
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x80000000, /* FRAG_COORD_UMASK = 0x8 */
+ 0x00000a0a, /* FP_INTERP[0x080], 0022 0022 */
+ 0x00000000, /* FP_INTERP[0x0c0], 0 = OFF */
+ 0x00000000, /* FP_INTERP[0x100], 1 = FLAT */
+ 0x00000000, /* FP_INTERP[0x140], 2 = PERSPECTIVE */
+ 0x00000000, /* FP_INTERP[0x180], 3 = LINEAR */
+ 0x00000000, /* FP_INTERP[0x1c0] */
+ 0x00000000, /* FP_INTERP[0x200] */
+ 0x00000000, /* FP_INTERP[0x240] */
+ 0x00000000, /* FP_INTERP[0x280] */
+ 0x00000000, /* FP_INTERP[0x2c0] */
+ 0x00000000, /* FP_INTERP[0x300] */
+ 0x00000000,
+ 0x0000000f, /* FP_RESULT_MASK (0x8000 Face ?) */
+ 0x00000000, /* 0x2 = FragDepth, 0x1 = SampleMask */
+#include "exacanve0.fpc"
+};
+#else
+
+#endif
diff --git a/src/shader/exacanve0.fpc b/src/shader/exacanve0.fpc
new file mode 100644
index 0000000..8a096b5
--- /dev/null
+++ b/src/shader/exacanve0.fpc
@@ -0,0 +1,30 @@
+ 0xfff01c00,
+ 0xc07e007c, /* linterp f32 $r0 v[$r63+0x7c] */
+ 0x10001c00,
+ 0xc8000000, /* rcp f32 $r0 $r0 */
+ 0x03f0dc40,
+ 0xc07e0094, /* pinterp f32 $r3 $r0 v[$r63+0x94] */
+ 0x03f09c40,
+ 0xc07e0090, /* pinterp f32 $r2 $r0 v[$r63+0x90] */
+ 0xfc211e86,
+ 0x8013c001, /* tex { $r4,5,6,7 } $t1 { $r2,3 } */
+ 0x00001de6,
+ 0xf0000000, /* texbar */
+ 0x03f05c40,
+ 0xc07e0084, /* pinterp f32 $r1 $r0 v[$r63+0x84] */
+ 0x03f01c40,
+ 0xc07e0080, /* pinterp f32 $r0 $r0 v[$r63+0x80] */
+ 0xfc001e86,
+ 0x8013c000, /* tex { $r0,1,2,3 } $t0 { $r0,1 } */
+ 0x00001de6,
+ 0xf0000000, /* texbar */
+ 0x1c30dc40,
+ 0x58000000, /* mul ftz rn f32 $r3 $r3 $r7 */
+ 0x18209c40,
+ 0x58000000, /* mul ftz rn f32 $r2 $r2 $r6 */
+ 0x14105c40,
+ 0x58000000, /* mul ftz rn f32 $r1 $r1 $r5 */
+ 0x10001c40,
+ 0x58000000, /* mul ftz rn f32 $r0 $r0 $r4 */
+ 0x00001de7,
+ 0x80000000, /* exit */
diff --git a/src/shader/exacmnvc0.fp b/src/shader/exacmnvc0.fp
new file mode 100644
index 0000000..a77980e
--- /dev/null
+++ b/src/shader/exacmnvc0.fp
@@ -0,0 +1,28 @@
+#ifndef ENVYAS
+static uint32_t
+NVC0FP_Composite[] = {
+ 0x00021462,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x80000000,
+ 0x00000a0a,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x0000000f,
+ 0x00000000,
+#include "exacmnvc0.fpc"
+};
+#else
+
+#endif
diff --git a/src/shader/exacmnvc0.fpc b/src/shader/exacmnvc0.fpc
new file mode 100644
index 0000000..945c653
--- /dev/null
+++ b/src/shader/exacmnvc0.fpc
@@ -0,0 +1,26 @@
+ 0xfff01c00,
+ 0xc07e007c, /* linterp f32 $r0 v[$r63+0x7c] */
+ 0x10001c00,
+ 0xc8000000, /* rcp f32 $r0 $r0 */
+ 0x03f0dc40,
+ 0xc07e0094, /* pinterp f32 $r3 $r0 v[$r63+0x94] */
+ 0x03f09c40,
+ 0xc07e0090, /* pinterp f32 $r2 $r0 v[$r63+0x90] */
+ 0xfc211e86,
+ 0x80120001, /* tex { _,_,_,$r4 } $t1 { $r2,3 } */
+ 0x03f05c40,
+ 0xc07e0084, /* pinterp f32 $r1 $r0 v[$r63+0x84] */
+ 0x03f01c40,
+ 0xc07e0080, /* pinterp f32 $r0 $r0 v[$r63+0x80] */
+ 0xfc001e86,
+ 0x8013c000, /* tex { $r0,1,2,3 } $t0 { $r0,1 } */
+ 0x1030dc40,
+ 0x58000000, /* mul ftz rn f32 $r3 $r3 $r4 */
+ 0x10209c40,
+ 0x58000000, /* mul ftz rn f32 $r2 $r2 $r4 */
+ 0x10105c40,
+ 0x58000000, /* mul ftz rn f32 $r1 $r1 $r4 */
+ 0x10001c40,
+ 0x58000000, /* mul ftz rn f32 $r0 $r0 $r4 */
+ 0x00001de7,
+ 0x80000000, /* exit */
diff --git a/src/shader/exacmnve0.fp b/src/shader/exacmnve0.fp
new file mode 100644
index 0000000..a7e54f6
--- /dev/null
+++ b/src/shader/exacmnve0.fp
@@ -0,0 +1,28 @@
+#ifndef ENVYAS
+static uint32_t
+NVE0FP_Composite[] = {
+ 0x00021462,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x80000000,
+ 0x00000a0a,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x0000000f,
+ 0x00000000,
+#include "exacmnve0.fpc"
+};
+#else
+
+#endif
diff --git a/src/shader/exacmnve0.fpc b/src/shader/exacmnve0.fpc
new file mode 100644
index 0000000..76a6119
--- /dev/null
+++ b/src/shader/exacmnve0.fpc
@@ -0,0 +1,30 @@
+ 0xfff01c00,
+ 0xc07e007c, /* linterp f32 $r0 v[$r63+0x7c] */
+ 0x10001c00,
+ 0xc8000000, /* rcp f32 $r0 $r0 */
+ 0x03f0dc40,
+ 0xc07e0094, /* pinterp f32 $r3 $r0 v[$r63+0x94] */
+ 0x03f09c40,
+ 0xc07e0090, /* pinterp f32 $r2 $r0 v[$r63+0x90] */
+ 0xfc211e86,
+ 0x80120001, /* tex { _,_,_,$r4 } $t1 { $r2,3 } */
+ 0x00001de6,
+ 0xf0000000, /* texbar */
+ 0x03f05c40,
+ 0xc07e0084, /* pinterp f32 $r1 $r0 v[$r63+0x84] */
+ 0x03f01c40,
+ 0xc07e0080, /* pinterp f32 $r0 $r0 v[$r63+0x80] */
+ 0xfc001e86,
+ 0x8013c000, /* tex { $r0,1,2,3 } $t0 { $r0,1 } */
+ 0x00001de6,
+ 0xf0000000, /* texbar */
+ 0x1030dc40,
+ 0x58000000, /* mul ftz rn f32 $r3 $r3 $r4 */
+ 0x10209c40,
+ 0x58000000, /* mul ftz rn f32 $r2 $r2 $r4 */
+ 0x10105c40,
+ 0x58000000, /* mul ftz rn f32 $r1 $r1 $r4 */
+ 0x10001c40,
+ 0x58000000, /* mul ftz rn f32 $r0 $r0 $r4 */
+ 0x00001de7,
+ 0x80000000, /* exit */
diff --git a/src/shader/exas8nvc0.fp b/src/shader/exas8nvc0.fp
new file mode 100644
index 0000000..cd05795
--- /dev/null
+++ b/src/shader/exas8nvc0.fp
@@ -0,0 +1,28 @@
+#ifndef ENVYAS
+static uint32_t
+NVC0FP_Source_A8[] = {
+ 0x00021462,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x80000000,
+ 0x0000000a,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x0000000f,
+ 0x00000000,
+#include "exas8nvc0.fpc"
+};
+#else
+
+#endif
diff --git a/src/shader/exas8nvc0.fpc b/src/shader/exas8nvc0.fpc
new file mode 100644
index 0000000..7399003
--- /dev/null
+++ b/src/shader/exas8nvc0.fpc
@@ -0,0 +1,18 @@
+ 0xfff01c00,
+ 0xc07e007c, /* linterp f32 $r0 v[$r63+0x7c] */
+ 0x10001c00,
+ 0xc8000000, /* rcp f32 $r0 $r0 */
+ 0x03f05c40,
+ 0xc07e0084, /* pinterp f32 $r1 $r0 v[$r63+0x84] */
+ 0x03f01c40,
+ 0xc07e0080, /* pinterp f32 $r0 $r0 v[$r63+0x80] */
+ 0xfc001e86,
+ 0x80120000, /* tex { _ _ _ $r0 } $t0 { $r0 $r1 } */
+ 0x0000dde4,
+ 0x28000000, /* mov b32 $r3 $r0 */
+ 0x00009de4,
+ 0x28000000, /* mov b32 $r2 $r0 */
+ 0x00005de4,
+ 0x28000000, /* mov b32 $r1 $r0 */
+ 0x00001de7,
+ 0x80000000, /* exit */
diff --git a/src/shader/exas8nve0.fp b/src/shader/exas8nve0.fp
new file mode 100644
index 0000000..6017f66
--- /dev/null
+++ b/src/shader/exas8nve0.fp
@@ -0,0 +1,28 @@
+#ifndef ENVYAS
+static uint32_t
+NVE0FP_Source_A8[] = {
+ 0x00021462,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x80000000,
+ 0x0000000a,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x0000000f,
+ 0x00000000,
+#include "exas8nve0.fpc"
+};
+#else
+
+#endif
diff --git a/src/shader/exas8nve0.fpc b/src/shader/exas8nve0.fpc
new file mode 100644
index 0000000..db5d3f1
--- /dev/null
+++ b/src/shader/exas8nve0.fpc
@@ -0,0 +1,20 @@
+ 0xfff01c00,
+ 0xc07e007c, /* linterp f32 $r0 v[$r63+0x7c] */
+ 0x10001c00,
+ 0xc8000000, /* rcp f32 $r0 $r0 */
+ 0x03f05c40,
+ 0xc07e0084, /* pinterp f32 $r1 $r0 v[$r63+0x84] */
+ 0x03f01c40,
+ 0xc07e0080, /* pinterp f32 $r0 $r0 v[$r63+0x80] */
+ 0xfc001e86,
+ 0x80120000, /* tex { _ _ _ $r0 } $t0 { $r0 $r1 } */
+ 0x00001de6,
+ 0xf0000000, /* texbar */
+ 0x0000dde4,
+ 0x28000000, /* mov b32 $r3 $r0 */
+ 0x00009de4,
+ 0x28000000, /* mov b32 $r2 $r0 */
+ 0x00005de4,
+ 0x28000000, /* mov b32 $r1 $r0 */
+ 0x00001de7,
+ 0x80000000, /* exit */
diff --git a/src/shader/exasanvc0.fp b/src/shader/exasanvc0.fp
new file mode 100644
index 0000000..9f33b4d
--- /dev/null
+++ b/src/shader/exasanvc0.fp
@@ -0,0 +1,28 @@
+#ifndef ENVYAS
+static uint32_t
+NVC0FP_CACompositeSrcAlpha[] = {
+ 0x00021462,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x80000000,
+ 0x00000a0a,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x0000000f,
+ 0x00000000,
+#include "exasanvc0.fpc"
+};
+#else
+
+#endif
diff --git a/src/shader/exasanvc0.fpc b/src/shader/exasanvc0.fpc
new file mode 100644
index 0000000..b2b1518
--- /dev/null
+++ b/src/shader/exasanvc0.fpc
@@ -0,0 +1,26 @@
+ 0xfff01c00,
+ 0xc07e007c, /* linterp f32 $r0 v[$r63+0x7c] */
+ 0x10001c00,
+ 0xc8000000, /* rcp f32 $r0 $r0 */
+ 0x03f0dc40,
+ 0xc07e0084, /* pinterp f32 $r3 $r0 v[$r63+0x84] */
+ 0x03f09c40,
+ 0xc07e0080, /* pinterp f32 $r2 $r0 v[$r63+0x80] */
+ 0xfc211e86,
+ 0x80120000, /* tex { _,_,_,$r4 } $t0 { $r2,3 } */
+ 0x03f05c40,
+ 0xc07e0094, /* pinterp f32 $r1 $r0 v[$r63+0x94] */
+ 0x03f01c40,
+ 0xc07e0090, /* pinterp f32 $r0 $r0 v[$r63+0x90] */
+ 0xfc001e86,
+ 0x8013c001, /* tex { $r0,1,2,3 } $t1 { $r0,1 } */
+ 0x1030dc40,
+ 0x58000000, /* mul ftz rn f32 $r3 $r3 $r4 */
+ 0x10209c40,
+ 0x58000000, /* mul ftz rn f32 $r2 $r2 $r4 */
+ 0x10105c40,
+ 0x58000000, /* mul ftz rn f32 $r1 $r1 $r4 */
+ 0x10001c40,
+ 0x58000000, /* mul ftz rn f32 $r0 $r0 $r4 */
+ 0x00001de7,
+ 0x80000000, /* exit */
diff --git a/src/shader/exasanve0.fp b/src/shader/exasanve0.fp
new file mode 100644
index 0000000..8a0702e
--- /dev/null
+++ b/src/shader/exasanve0.fp
@@ -0,0 +1,28 @@
+#ifndef ENVYAS
+static uint32_t
+NVE0FP_CACompositeSrcAlpha[] = {
+ 0x00021462,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x80000000,
+ 0x00000a0a,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x0000000f,
+ 0x00000000,
+#include "exasanve0.fpc"
+};
+#else
+
+#endif
diff --git a/src/shader/exasanve0.fpc b/src/shader/exasanve0.fpc
new file mode 100644
index 0000000..e30e4a0
--- /dev/null
+++ b/src/shader/exasanve0.fpc
@@ -0,0 +1,30 @@
+ 0xfff01c00,
+ 0xc07e007c, /* linterp f32 $r0 v[$r63+0x7c] */
+ 0x10001c00,
+ 0xc8000000, /* rcp f32 $r0 $r0 */
+ 0x03f0dc40,
+ 0xc07e0084, /* pinterp f32 $r3 $r0 v[$r63+0x84] */
+ 0x03f09c40,
+ 0xc07e0080, /* pinterp f32 $r2 $r0 v[$r63+0x80] */
+ 0xfc211e86,
+ 0x80120000, /* tex { _,_,_,$r4 } $t0 { $r2,3 } */
+ 0x00001de6,
+ 0xf0000000, /* texbar */
+ 0x03f05c40,
+ 0xc07e0094, /* pinterp f32 $r1 $r0 v[$r63+0x94] */
+ 0x03f01c40,
+ 0xc07e0090, /* pinterp f32 $r0 $r0 v[$r63+0x90] */
+ 0xfc001e86,
+ 0x8013c001, /* tex { $r0,1,2,3 } $t1 { $r0,1 } */
+ 0x00001de6,
+ 0xf0000000, /* texbar */
+ 0x1030dc40,
+ 0x58000000, /* mul ftz rn f32 $r3 $r3 $r4 */
+ 0x10209c40,
+ 0x58000000, /* mul ftz rn f32 $r2 $r2 $r4 */
+ 0x10105c40,
+ 0x58000000, /* mul ftz rn f32 $r1 $r1 $r4 */
+ 0x10001c40,
+ 0x58000000, /* mul ftz rn f32 $r0 $r0 $r4 */
+ 0x00001de7,
+ 0x80000000, /* exit */
diff --git a/src/shader/exascnvc0.fp b/src/shader/exascnvc0.fp
new file mode 100644
index 0000000..d1f1791
--- /dev/null
+++ b/src/shader/exascnvc0.fp
@@ -0,0 +1,28 @@
+#ifndef ENVYAS
+static uint32_t
+NVC0FP_Source[] = {
+ 0x00021462,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x80000000,
+ 0x0000000a,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x0000000f,
+ 0x00000000,
+#include "exascnvc0.fpc"
+};
+#else
+
+#endif
diff --git a/src/shader/exascnvc0.fpc b/src/shader/exascnvc0.fpc
new file mode 100644
index 0000000..27b5456
--- /dev/null
+++ b/src/shader/exascnvc0.fpc
@@ -0,0 +1,12 @@
+ 0xfff01c00,
+ 0xc07e007c, /* linterp f32 $r0 v[$r63+0x7c] */
+ 0x10001c00,
+ 0xc8000000, /* rcp f32 $r0 $r0 */
+ 0x03f05c40,
+ 0xc07e0084, /* pinterp f32 $r1 $r0 v[$r63+0x84] */
+ 0x03f01c40,
+ 0xc07e0080, /* pinterp f32 $r0 $r0 v[$r63+0x80] */
+ 0xfc001e86,
+ 0x8013c000, /* tex { $r0,1,2,3 } $t0 { $r0,1 } */
+ 0x00001de7,
+ 0x80000000, /* exit */
diff --git a/src/shader/exascnve0.fp b/src/shader/exascnve0.fp
new file mode 100644
index 0000000..a1d4517
--- /dev/null
+++ b/src/shader/exascnve0.fp
@@ -0,0 +1,28 @@
+#ifndef ENVYAS
+static uint32_t
+NVE0FP_Source[] = {
+ 0x00021462,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x80000000,
+ 0x0000000a,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x0000000f,
+ 0x00000000,
+#include "exascnve0.fpc"
+};
+#else
+
+#endif
diff --git a/src/shader/exascnve0.fpc b/src/shader/exascnve0.fpc
new file mode 100644
index 0000000..338252b
--- /dev/null
+++ b/src/shader/exascnve0.fpc
@@ -0,0 +1,14 @@
+ 0xfff01c00,
+ 0xc07e007c, /* linterp f32 $r0 v[$r63+0x7c] */
+ 0x10001c00,
+ 0xc8000000, /* rcp f32 $r0 $r0 */
+ 0x03f05c40,
+ 0xc07e0084, /* pinterp f32 $r1 $r0 v[$r63+0x84] */
+ 0x03f01c40,
+ 0xc07e0080, /* pinterp f32 $r0 $r0 v[$r63+0x80] */
+ 0xfc001e86,
+ 0x8013c000, /* tex { $r0,1,2,3 } $t0 { $r0,1 } */
+ 0x00001de6,
+ 0xf0000000, /* texbar */
+ 0x00001de7,
+ 0x80000000, /* exit */
diff --git a/src/shader/videonvc0.fp b/src/shader/videonvc0.fp
new file mode 100644
index 0000000..6f82a0e
--- /dev/null
+++ b/src/shader/videonvc0.fp
@@ -0,0 +1,28 @@
+#ifndef ENVYAS
+static uint32_t
+NVC0FP_NV12[] = {
+ 0x00021462,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x80000000,
+ 0x00000a0a,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x0000000f,
+ 0x00000000,
+#include "videonvc0.fpc"
+};
+#else
+
+#endif
diff --git a/src/shader/videonvc0.fpc b/src/shader/videonvc0.fpc
new file mode 100644
index 0000000..18828c2
--- /dev/null
+++ b/src/shader/videonvc0.fpc
@@ -0,0 +1,38 @@
+ 0xfff09c00,
+ 0xc07e007c,
+ 0x10209c00,
+ 0xc8000000,
+ 0x0bf01c40,
+ 0xc07e0080,
+ 0x0bf05c40,
+ 0xc07e0084,
+ 0xfc001e86,
+ 0x80120000,
+ 0x00015c40,
+ 0x58004000,
+ 0x1050dc20,
+ 0x50004000,
+ 0x20511c20,
+ 0x50004000,
+ 0x30515c20,
+ 0x50004000,
+ 0x0bf01c40,
+ 0xc07e0080,
+ 0x0bf05c40,
+ 0xc07e0084,
+ 0xfc001e86,
+ 0x80130001,
+ 0x4000dc40,
+ 0x30064000,
+ 0x50011c40,
+ 0x30084000,
+ 0x60015c40,
+ 0x300a4000,
+ 0x70101c40,
+ 0x30064000,
+ 0x90109c40,
+ 0x300a4000,
+ 0x80105c40,
+ 0x30084000,
+ 0x00001de7,
+ 0x80000000,
diff --git a/src/shader/videonve0.fp b/src/shader/videonve0.fp
new file mode 100644
index 0000000..24747c1
--- /dev/null
+++ b/src/shader/videonve0.fp
@@ -0,0 +1,28 @@
+#ifndef ENVYAS
+static uint32_t
+NVE0FP_NV12[] = {
+ 0x00021462,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x80000000,
+ 0x0000000a,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x0000000f,
+ 0x00000000,
+#include "videonve0.fpc"
+};
+#else
+
+#endif
diff --git a/src/shader/videonve0.fpc b/src/shader/videonve0.fpc
new file mode 100644
index 0000000..1263c2d
--- /dev/null
+++ b/src/shader/videonve0.fpc
@@ -0,0 +1,22 @@
+ 0xe23282e7, 0x2c220202, /* sched 0x2e 0x28 0x23 0x2e 0x20 0x20 0xc2 */
+ 0xfff09c00, 0xc07e007c, /* interp pass f32 $r2 a[0x7c] */
+ 0x10209c00, 0xc8000000, /* rcp f32 $r2 $r2 */
+ 0x0bf01c40, 0xc07e0080, /* interp mul f32 $r0 a[0x80] $r2 0 */
+ 0x0bf05c40, 0xc07e0084, /* interp mul f32 $r1 a[0x84] $r2 0 */
+ 0xfc011e86, 0x80120000, /* tex t { # # # $r4 } t2d c[0x0] { $r0 $r1 } */
+ 0xfc001f06, 0x80130001, /* tex p { # # $r0 $r1 } t2d c[0x4] { $r0 $r1 } */
+ 0x04001de6, 0xf0000000, /* texbar 1 */
+ 0x02004287, 0x22004a22, /* sched 0x28 0x4 0x20 0x20 0xa2 0x4 0x20 */
+ 0x00415c40, 0x58004000, /* mul ftz rn f32 $r5 $r4 c0[0] */
+ 0x1050dc20, 0x50004000, /* add ftz rn f32 $r3 $r5 c0[0x4] */
+ 0x20511c20, 0x50004000, /* add ftz rn f32 $r4 $r5 c0[0x8] */
+ 0x30515c20, 0x50004000, /* add ftz rn f32 $r5 $r5 c0[0xc] */
+ 0x00001de6, 0xf0000000, /* texbar 0 */
+ 0x4000dc40, 0x30064000, /* fma ftz rn f32 $r3 $r0 c0[0x10] $r3 */
+ 0x50011c40, 0x30084000, /* fma ftz rn f32 $r4 $r0 c0[0x14] $r4 */
+ 0x42004287, 0x200002e0, /* sched 0x28 0x4 0x20 0x4 0x2e 0 0 */
+ 0x60015c40, 0x300a4000, /* fma ftz rn f32 $r5 $r0 c0[0x18] $r5 */
+ 0x70101c40, 0x30064000, /* fma ftz rn f32 $r0 $r1 c0[0x1c] $r3 */
+ 0x90109c40, 0x300a4000, /* fma ftz rn f32 $r2 $r1 c0[0x24] $r5 */
+ 0x80105c40, 0x30084000, /* fma ftz rn f32 $r1 $r1 c0[0x20] $r4 */
+ 0x00001de7, 0x80000000, /* exit */
diff --git a/src/shader/xfrm2nvc0.vp b/src/shader/xfrm2nvc0.vp
new file mode 100644
index 0000000..a9cdd08
--- /dev/null
+++ b/src/shader/xfrm2nvc0.vp
@@ -0,0 +1,28 @@
+#ifndef ENVYAS
+static uint32_t
+NVC0VP_Transform2[] = {
+ 0x00020461,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x000ff000,
+ 0x00000000, /* VP_ATTR_EN[0x000] */
+ 0x0001033f, /* VP_ATTR_EN[0x080] */
+ 0x00000000, /* VP_ATTR_EN[0x100] */
+ 0x00000000,
+ 0x00000000, /* VP_ATTR_EN[0x200] */
+ 0x00000000,
+ 0x00000000, /* VP_ATTR_EN[0x300] */
+ 0x00000000,
+ 0x0033f000, /* VP_EXPORT_EN[0x040] */
+ 0x00000000, /* VP_EXPORT_EN[0x0c0] */
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000, /* VP_EXPORT_EN[0x2c0] */
+ 0x00000000,
+#include "xfrm2nvc0.vpc"
+};
+#else
+
+#endif
diff --git a/src/shader/xfrm2nvc0.vpc b/src/shader/xfrm2nvc0.vpc
new file mode 100644
index 0000000..a1287c0
--- /dev/null
+++ b/src/shader/xfrm2nvc0.vpc
@@ -0,0 +1,70 @@
+ 0xfff01c66,
+ 0x06000080,
+ 0x03f01c66,
+ 0x0a7e0070,
+ 0xfff01c26,
+ 0x06000090,
+ 0x00009c40,
+ 0x58004000,
+ 0x3000dc40,
+ 0x58004000,
+ 0x60011c40,
+ 0x58004000,
+ 0x10109c40,
+ 0x30044000,
+ 0x4010dc40,
+ 0x30064000,
+ 0x70111c40,
+ 0x30084000,
+ 0x20209c20,
+ 0x50004000,
+ 0x5030dc20,
+ 0x50004000,
+ 0x80411c20,
+ 0x50004000,
+ 0x10411c00,
+ 0xc8000000,
+ 0x10209c40,
+ 0x58000000,
+ 0x1030dc40,
+ 0x58000000,
+ 0x90201c40,
+ 0x58004000,
+ 0xa0305c40,
+ 0x58004000,
+ 0x03f01c26,
+ 0x0a7e0080,
+ 0xfff01c26,
+ 0x060000a0,
+ 0xb0009c40,
+ 0x58004000,
+ 0xe000dc40,
+ 0x58004000,
+ 0x10011c40,
+ 0x58004001,
+ 0xc0109c40,
+ 0x30044000,
+ 0xf010dc40,
+ 0x30064000,
+ 0x20111c40,
+ 0x30084001,
+ 0xd0209c20,
+ 0x50004000,
+ 0x0030dc20,
+ 0x50004001,
+ 0x30411c20,
+ 0x50004001,
+ 0x10411c00,
+ 0xc8000000,
+ 0x10209c40,
+ 0x58000000,
+ 0x1030dc40,
+ 0x58000000,
+ 0x40201c40,
+ 0x58004001,
+ 0x50305c40,
+ 0x58004001,
+ 0x03f01c26,
+ 0x0a7e0090,
+ 0x00001de7,
+ 0x80000000,
diff --git a/src/shader/xfrm2nve0.vp b/src/shader/xfrm2nve0.vp
new file mode 100644
index 0000000..262841f
--- /dev/null
+++ b/src/shader/xfrm2nve0.vp
@@ -0,0 +1,28 @@
+#ifndef ENVYAS
+static uint32_t
+NVE0VP_Transform2[] = {
+ 0x00020461,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x000ff000,
+ 0x00000000, /* VP_ATTR_EN[0x000] */
+ 0x0001033f, /* VP_ATTR_EN[0x080] */
+ 0x00000000, /* VP_ATTR_EN[0x100] */
+ 0x00000000,
+ 0x00000000, /* VP_ATTR_EN[0x200] */
+ 0x00000000,
+ 0x00000000, /* VP_ATTR_EN[0x300] */
+ 0x00000000,
+ 0x0033f000, /* VP_EXPORT_EN[0x040] */
+ 0x00000000, /* VP_EXPORT_EN[0x0c0] */
+ 0x00000000,
+ 0x00000000,
+ 0x00000000,
+ 0x00000000, /* VP_EXPORT_EN[0x2c0] */
+ 0x00000000,
+#include "xfrm2nve0.vpc"
+};
+#else
+
+#endif
diff --git a/src/shader/xfrm2nve0.vpc b/src/shader/xfrm2nve0.vpc
new file mode 100644
index 0000000..a1287c0
--- /dev/null
+++ b/src/shader/xfrm2nve0.vpc
@@ -0,0 +1,70 @@
+ 0xfff01c66,
+ 0x06000080,
+ 0x03f01c66,
+ 0x0a7e0070,
+ 0xfff01c26,
+ 0x06000090,
+ 0x00009c40,
+ 0x58004000,
+ 0x3000dc40,
+ 0x58004000,
+ 0x60011c40,
+ 0x58004000,
+ 0x10109c40,
+ 0x30044000,
+ 0x4010dc40,
+ 0x30064000,
+ 0x70111c40,
+ 0x30084000,
+ 0x20209c20,
+ 0x50004000,
+ 0x5030dc20,
+ 0x50004000,
+ 0x80411c20,
+ 0x50004000,
+ 0x10411c00,
+ 0xc8000000,
+ 0x10209c40,
+ 0x58000000,
+ 0x1030dc40,
+ 0x58000000,
+ 0x90201c40,
+ 0x58004000,
+ 0xa0305c40,
+ 0x58004000,
+ 0x03f01c26,
+ 0x0a7e0080,
+ 0xfff01c26,
+ 0x060000a0,
+ 0xb0009c40,
+ 0x58004000,
+ 0xe000dc40,
+ 0x58004000,
+ 0x10011c40,
+ 0x58004001,
+ 0xc0109c40,
+ 0x30044000,
+ 0xf010dc40,
+ 0x30064000,
+ 0x20111c40,
+ 0x30084001,
+ 0xd0209c20,
+ 0x50004000,
+ 0x0030dc20,
+ 0x50004001,
+ 0x30411c20,
+ 0x50004001,
+ 0x10411c00,
+ 0xc8000000,
+ 0x10209c40,
+ 0x58000000,
+ 0x1030dc40,
+ 0x58000000,
+ 0x40201c40,
+ 0x58004001,
+ 0x50305c40,
+ 0x58004001,
+ 0x03f01c26,
+ 0x0a7e0090,
+ 0x00001de7,
+ 0x80000000,