mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-06-03 06:48:19 +02:00
d3d1x: autogenerate shader enums and text from def files
This avoids the duplication in tpf.h and tpf_text.cpp
This commit is contained in:
parent
22762012d1
commit
75c29fe1c8
17 changed files with 390 additions and 792 deletions
|
|
@ -5,3 +5,9 @@ PROGS=tools/fxdis
|
|||
LIBS=libd3d1xshader.a
|
||||
|
||||
include ../Makefile.inc
|
||||
|
||||
include/tpf_defs.h: $(wildcard defs/*.txt)
|
||||
./gen-header.sh $^ > $@
|
||||
|
||||
src/tpf_text.cpp: $(wildcard defs/*.txt)
|
||||
./gen-text.sh $^ > $@
|
||||
|
|
|
|||
41
src/gallium/state_trackers/d3d1x/d3d1xshader/defs/files.txt
Normal file
41
src/gallium/state_trackers/d3d1x/d3d1xshader/defs/files.txt
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
temp
|
||||
input
|
||||
output
|
||||
indexable_temp
|
||||
immediate32
|
||||
immediate64
|
||||
sampler
|
||||
resource
|
||||
constant_buffer
|
||||
immediate_constant_buffer
|
||||
label
|
||||
input_primitiveid
|
||||
output_depth
|
||||
null
|
||||
rasterizer
|
||||
output_coverage_mask
|
||||
stream
|
||||
function_body
|
||||
function_table
|
||||
interface
|
||||
function_input
|
||||
function_output
|
||||
output_control_point_id
|
||||
input_fork_instance_id
|
||||
input_join_instance_id
|
||||
input_control_point
|
||||
output_control_point
|
||||
input_patch_constant
|
||||
input_domain_point
|
||||
this_pointer
|
||||
unordered_access_view
|
||||
thread_group_shared_memory
|
||||
input_thread_id
|
||||
input_thread_group_id
|
||||
input_thread_id_in_group
|
||||
input_coverage_mask
|
||||
input_thread_id_in_group_flattened
|
||||
input_gs_instance_id
|
||||
output_depth_greater_equal
|
||||
output_depth_less_equal
|
||||
cycle_counter
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
undefined
|
||||
constant
|
||||
linear
|
||||
linear centroid
|
||||
linear noperspective
|
||||
linear noperspective centroid
|
||||
linear sample
|
||||
linear noperspective sample
|
||||
207
src/gallium/state_trackers/d3d1x/d3d1xshader/defs/opcodes.txt
Normal file
207
src/gallium/state_trackers/d3d1x/d3d1xshader/defs/opcodes.txt
Normal file
|
|
@ -0,0 +1,207 @@
|
|||
add
|
||||
and
|
||||
break
|
||||
breakc
|
||||
call
|
||||
callc
|
||||
case
|
||||
continue
|
||||
continuec
|
||||
cut
|
||||
default
|
||||
deriv_rtx
|
||||
deriv_rty
|
||||
discard
|
||||
div
|
||||
dp2
|
||||
dp3
|
||||
dp4
|
||||
else
|
||||
emit
|
||||
emitthencut
|
||||
endif
|
||||
endloop
|
||||
endswitch
|
||||
eq
|
||||
exp
|
||||
frc
|
||||
ftoi
|
||||
ftou
|
||||
ge
|
||||
iadd
|
||||
if
|
||||
ieq
|
||||
ige
|
||||
ilt
|
||||
imad
|
||||
imax
|
||||
imin
|
||||
imul
|
||||
ine
|
||||
ineg
|
||||
ishl
|
||||
ishr
|
||||
itof
|
||||
label
|
||||
ld
|
||||
ld_ms
|
||||
log
|
||||
loop
|
||||
lt
|
||||
mad
|
||||
min
|
||||
max
|
||||
customdata
|
||||
mov
|
||||
movc
|
||||
mul
|
||||
ne
|
||||
nop
|
||||
not
|
||||
or
|
||||
resinfo
|
||||
ret
|
||||
retc
|
||||
round_ne
|
||||
round_ni
|
||||
round_pi
|
||||
round_z
|
||||
rsq
|
||||
sample
|
||||
sample_c
|
||||
sample_c_lz
|
||||
sample_l
|
||||
sample_d
|
||||
sample_b
|
||||
sqrt
|
||||
switch
|
||||
sincos
|
||||
udiv
|
||||
ult
|
||||
uge
|
||||
umul
|
||||
umad
|
||||
umax
|
||||
umin
|
||||
ushr
|
||||
utof
|
||||
xor
|
||||
dcl_resource
|
||||
dcl_constant_buffer
|
||||
dcl_sampler
|
||||
dcl_index_range
|
||||
dcl_gs_output_primitive_topology
|
||||
dcl_gs_input_primitive
|
||||
dcl_max_output_vertex_count
|
||||
dcl_input
|
||||
dcl_input_sgv
|
||||
dcl_input_siv
|
||||
dcl_input_ps
|
||||
dcl_input_ps_sgv
|
||||
dcl_input_ps_siv
|
||||
dcl_output
|
||||
dcl_output_sgv
|
||||
dcl_output_siv
|
||||
dcl_temps
|
||||
dcl_indexable_temp
|
||||
dcl_global_flags
|
||||
d3d10_count
|
||||
lod
|
||||
gather4
|
||||
sample_pos
|
||||
sample_info
|
||||
d3d10_1_count
|
||||
hs_decls
|
||||
hs_control_point_phase
|
||||
hs_fork_phase
|
||||
hs_join_phase
|
||||
emit_stream
|
||||
cut_stream
|
||||
emitthencut_stream
|
||||
interface_call
|
||||
bufinfo
|
||||
deriv_rtx_coarse
|
||||
deriv_rtx_fine
|
||||
deriv_rty_coarse
|
||||
deriv_rty_fine
|
||||
gather4_c
|
||||
gather4_po
|
||||
gather4_po_c
|
||||
rcp
|
||||
f32tof16
|
||||
f16tof32
|
||||
uaddc
|
||||
usubb
|
||||
countbits
|
||||
firstbit_hi
|
||||
firstbit_lo
|
||||
firstbit_shi
|
||||
ubfe
|
||||
ibfe
|
||||
bfi
|
||||
bfrev
|
||||
swapc
|
||||
dcl_stream
|
||||
dcl_function_body
|
||||
dcl_function_table
|
||||
dcl_interface
|
||||
dcl_input_control_point_count
|
||||
dcl_output_control_point_count
|
||||
dcl_tess_domain
|
||||
dcl_tess_partitioning
|
||||
dcl_tess_output_primitive
|
||||
dcl_hs_max_tessfactor
|
||||
dcl_hs_fork_phase_instance_count
|
||||
dcl_hs_join_phase_instance_count
|
||||
dcl_thread_group
|
||||
dcl_unordered_access_view_typed
|
||||
dcl_unordered_access_view_raw
|
||||
dcl_unordered_access_view_structured
|
||||
dcl_thread_group_shared_memory_raw
|
||||
dcl_thread_group_shared_memory_structured
|
||||
dcl_resource_raw
|
||||
dcl_resource_structured
|
||||
ld_uav_typed
|
||||
store_uav_typed
|
||||
ld_raw
|
||||
store_raw
|
||||
ld_structured
|
||||
store_structured
|
||||
atomic_and
|
||||
atomic_or
|
||||
atomic_xor
|
||||
atomic_cmp_store
|
||||
atomic_iadd
|
||||
atomic_imax
|
||||
atomic_imin
|
||||
atomic_umax
|
||||
atomic_umin
|
||||
imm_atomic_alloc
|
||||
imm_atomic_consume
|
||||
imm_atomic_iadd
|
||||
imm_atomic_and
|
||||
imm_atomic_or
|
||||
imm_atomic_xor
|
||||
imm_atomic_exch
|
||||
imm_atomic_cmp_exch
|
||||
imm_atomic_imax
|
||||
imm_atomic_imin
|
||||
imm_atomic_umax
|
||||
imm_atomic_umin
|
||||
sync
|
||||
dadd
|
||||
dmax
|
||||
dmin
|
||||
dmul
|
||||
deq
|
||||
dge
|
||||
dlt
|
||||
dne
|
||||
dmov
|
||||
dmovc
|
||||
dtof
|
||||
ftod
|
||||
eval_snapped
|
||||
eval_sample_index
|
||||
eval_centroid
|
||||
dcl_gs_instance_count
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
0
|
||||
1
|
||||
4
|
||||
n
|
||||
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
imm32
|
||||
imm64
|
||||
reg
|
||||
reg_imm32
|
||||
reg_imm64
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
mask
|
||||
swizzle
|
||||
scalar
|
||||
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
r
|
||||
v
|
||||
o
|
||||
x
|
||||
l
|
||||
d
|
||||
sampler
|
||||
resource
|
||||
cb
|
||||
icb
|
||||
label
|
||||
vPrim
|
||||
oDepth
|
||||
null
|
||||
rasterizer
|
||||
oMask
|
||||
stream
|
||||
function_body
|
||||
function_table
|
||||
interface
|
||||
function_input
|
||||
function_output
|
||||
vOutputControlPointID
|
||||
vForkInstanceID
|
||||
vJoinInstanceID
|
||||
vicp
|
||||
vocp
|
||||
input_patch_constant
|
||||
vDomain
|
||||
this
|
||||
u
|
||||
g
|
||||
vThreadID
|
||||
vThreadGrouID
|
||||
vThreadIDInGroup
|
||||
vCoverage
|
||||
vThreadIDInGroupFlattened
|
||||
vGSInstanceID
|
||||
oDepthGE
|
||||
oDepthLE
|
||||
vCycleCounter
|
||||
23
src/gallium/state_trackers/d3d1x/d3d1xshader/defs/svs.txt
Normal file
23
src/gallium/state_trackers/d3d1x/d3d1xshader/defs/svs.txt
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
undefined
|
||||
position
|
||||
clip_distance
|
||||
cull_distance
|
||||
render_target_array_index
|
||||
viewport_array_index
|
||||
vertex_id
|
||||
primitive_id
|
||||
instance_id
|
||||
is_front_face
|
||||
sample_index
|
||||
final_quad_u_eq_0_edge_tessfactor
|
||||
final_quad_v_eq_0_edge_tessfactor
|
||||
final_quad_u_eq_1_edge_tessfactor
|
||||
final_quad_v_eq_1_edge_tessfactor
|
||||
final_quad_u_inside_tessfactor
|
||||
final_quad_v_inside_tessfactor
|
||||
final_tri_u_eq_0_edge_tessfactor
|
||||
final_tri_v_eq_0_edge_tessfactor
|
||||
final_tri_w_eq_0_edge_tessfactor
|
||||
final_tri_inside_tessfactor
|
||||
final_line_detail_tessfactor
|
||||
final_line_density_tessfactor
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
unknown
|
||||
buffer
|
||||
texture1d
|
||||
texture2d
|
||||
texture2dms
|
||||
texture3d
|
||||
texturecube
|
||||
texture1darray
|
||||
texture2darray
|
||||
texture2dmsarray
|
||||
texturecubearray
|
||||
raw_buffer
|
||||
structured_buffer
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
empty
|
||||
sample_controls
|
||||
resource_dim
|
||||
resource_return_type
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
empty
|
||||
modifier
|
||||
13
src/gallium/state_trackers/d3d1x/d3d1xshader/gen-header.sh
Executable file
13
src/gallium/state_trackers/d3d1x/d3d1xshader/gen-header.sh
Executable file
|
|
@ -0,0 +1,13 @@
|
|||
#!/bin/bash
|
||||
for i in "$@"; do
|
||||
n=$(basename "$i" .txt|sed -e 's/s$//')
|
||||
if test "$n" == "shortfile"; then continue; fi
|
||||
echo "enum tpf_$n"
|
||||
echo "{"
|
||||
while read j; do
|
||||
echo $'\t'"TPF_${n}_$j",
|
||||
done < "$i" |tr '[a-z]' '[A-Z]'|tr ' ' '_'
|
||||
echo $'\t'"TPF_${n}_COUNT"|tr '[a-z]' '[A-Z]'
|
||||
echo "};"
|
||||
echo
|
||||
done
|
||||
11
src/gallium/state_trackers/d3d1x/d3d1xshader/gen-text.sh
Executable file
11
src/gallium/state_trackers/d3d1x/d3d1xshader/gen-text.sh
Executable file
|
|
@ -0,0 +1,11 @@
|
|||
#!/bin/bash
|
||||
for i in "$@"; do
|
||||
n=$(basename "$i" .txt|sed -e 's/s$//')
|
||||
echo "const char* tpf_${n}_names[] ="
|
||||
echo "{"
|
||||
while read j; do
|
||||
echo $'\t'"\"$j\"",
|
||||
done < "$i"
|
||||
echo "};"
|
||||
echo
|
||||
done
|
||||
|
|
@ -36,376 +36,13 @@
|
|||
#include <iostream>
|
||||
#include "le32.h"
|
||||
|
||||
/* This is an independent implementation of definitions and tools for the
|
||||
* "tokenized program format" (TPF) bytecode documented in the
|
||||
* d3d11TokenizedProgramFormat.hpp header in the Windows Driver Development kit
|
||||
*/
|
||||
|
||||
enum tpf_opcode {
|
||||
// Shader Model 4.0 (Direct3D 10.0)
|
||||
|
||||
TPF_OPCODE_ADD,
|
||||
TPF_OPCODE_AND,
|
||||
TPF_OPCODE_BREAK,
|
||||
TPF_OPCODE_BREAKC,
|
||||
TPF_OPCODE_CALL,
|
||||
TPF_OPCODE_CALLC,
|
||||
TPF_OPCODE_CASE,
|
||||
TPF_OPCODE_CONTINUE,
|
||||
TPF_OPCODE_CONTINUEC,
|
||||
TPF_OPCODE_CUT,
|
||||
TPF_OPCODE_DEFAULT,
|
||||
TPF_OPCODE_DERIV_RTX,
|
||||
TPF_OPCODE_DERIV_RTY,
|
||||
TPF_OPCODE_DISCARD,
|
||||
TPF_OPCODE_DIV,
|
||||
TPF_OPCODE_DP2,
|
||||
TPF_OPCODE_DP3,
|
||||
TPF_OPCODE_DP4,
|
||||
TPF_OPCODE_ELSE,
|
||||
TPF_OPCODE_EMIT,
|
||||
TPF_OPCODE_EMITTHENCUT,
|
||||
TPF_OPCODE_ENDIF,
|
||||
TPF_OPCODE_ENDLOOP,
|
||||
TPF_OPCODE_ENDSWITCH,
|
||||
TPF_OPCODE_EQ,
|
||||
TPF_OPCODE_EXP,
|
||||
TPF_OPCODE_FRC,
|
||||
TPF_OPCODE_FTOI,
|
||||
TPF_OPCODE_FTOU,
|
||||
TPF_OPCODE_GE,
|
||||
TPF_OPCODE_IADD,
|
||||
TPF_OPCODE_IF,
|
||||
TPF_OPCODE_IEQ,
|
||||
TPF_OPCODE_IGE,
|
||||
TPF_OPCODE_ILT,
|
||||
TPF_OPCODE_IMAD,
|
||||
TPF_OPCODE_IMAX,
|
||||
TPF_OPCODE_IMIN,
|
||||
TPF_OPCODE_IMUL,
|
||||
TPF_OPCODE_INE,
|
||||
TPF_OPCODE_INEG,
|
||||
TPF_OPCODE_ISHL,
|
||||
TPF_OPCODE_ISHR,
|
||||
TPF_OPCODE_ITOF,
|
||||
TPF_OPCODE_LABEL,
|
||||
TPF_OPCODE_LD,
|
||||
TPF_OPCODE_LD_MS,
|
||||
TPF_OPCODE_LOG,
|
||||
TPF_OPCODE_LOOP,
|
||||
TPF_OPCODE_LT,
|
||||
TPF_OPCODE_MAD,
|
||||
TPF_OPCODE_MIN,
|
||||
TPF_OPCODE_MAX,
|
||||
TPF_OPCODE_CUSTOMDATA,
|
||||
TPF_OPCODE_MOV,
|
||||
TPF_OPCODE_MOVC,
|
||||
TPF_OPCODE_MUL,
|
||||
TPF_OPCODE_NE,
|
||||
TPF_OPCODE_NOP,
|
||||
TPF_OPCODE_NOT,
|
||||
TPF_OPCODE_OR,
|
||||
TPF_OPCODE_RESINFO,
|
||||
TPF_OPCODE_RET,
|
||||
TPF_OPCODE_RETC,
|
||||
TPF_OPCODE_ROUND_NE,
|
||||
TPF_OPCODE_ROUND_NI,
|
||||
TPF_OPCODE_ROUND_PI,
|
||||
TPF_OPCODE_ROUND_Z,
|
||||
TPF_OPCODE_RSQ,
|
||||
TPF_OPCODE_SAMPLE,
|
||||
TPF_OPCODE_SAMPLE_C,
|
||||
TPF_OPCODE_SAMPLE_C_LZ,
|
||||
TPF_OPCODE_SAMPLE_L,
|
||||
TPF_OPCODE_SAMPLE_D,
|
||||
TPF_OPCODE_SAMPLE_B,
|
||||
TPF_OPCODE_SQRT,
|
||||
TPF_OPCODE_SWITCH,
|
||||
TPF_OPCODE_SINCOS,
|
||||
TPF_OPCODE_UDIV,
|
||||
TPF_OPCODE_ULT,
|
||||
TPF_OPCODE_UGE,
|
||||
TPF_OPCODE_UMUL,
|
||||
TPF_OPCODE_UMAD,
|
||||
TPF_OPCODE_UMAX,
|
||||
TPF_OPCODE_UMIN,
|
||||
TPF_OPCODE_USHR,
|
||||
TPF_OPCODE_UTOF,
|
||||
TPF_OPCODE_XOR,
|
||||
|
||||
// these have custom formats
|
||||
TPF_OPCODE_DCL_RESOURCE,
|
||||
TPF_OPCODE_DCL_CONSTANT_BUFFER,
|
||||
TPF_OPCODE_DCL_SAMPLER,
|
||||
TPF_OPCODE_DCL_INDEX_RANGE,
|
||||
TPF_OPCODE_DCL_GS_OUTPUT_PRIMITIVE_TOPOLOGY,
|
||||
TPF_OPCODE_DCL_GS_INPUT_PRIMITIVE,
|
||||
TPF_OPCODE_DCL_MAX_OUTPUT_VERTEX_COUNT,
|
||||
TPF_OPCODE_DCL_INPUT,
|
||||
TPF_OPCODE_DCL_INPUT_SGV,
|
||||
TPF_OPCODE_DCL_INPUT_SIV,
|
||||
TPF_OPCODE_DCL_INPUT_PS,
|
||||
TPF_OPCODE_DCL_INPUT_PS_SGV,
|
||||
TPF_OPCODE_DCL_INPUT_PS_SIV,
|
||||
TPF_OPCODE_DCL_OUTPUT,
|
||||
TPF_OPCODE_DCL_OUTPUT_SGV,
|
||||
TPF_OPCODE_DCL_OUTPUT_SIV,
|
||||
TPF_OPCODE_DCL_TEMPS,
|
||||
TPF_OPCODE_DCL_INDEXABLE_TEMP,
|
||||
TPF_OPCODE_DCL_GLOBAL_FLAGS,
|
||||
|
||||
TPF_OPCODE_D3D10_COUNT, // this is really a reserved opcode...
|
||||
|
||||
// Shader Model 4.1 (Direct3D 10.1)
|
||||
|
||||
TPF_OPCODE_LOD,
|
||||
TPF_OPCODE_GATHER4,
|
||||
TPF_OPCODE_SAMPLE_POS,
|
||||
TPF_OPCODE_SAMPLE_INFO,
|
||||
|
||||
TPF_OPCODE_D3D10_1_COUNT, // this is really a reserved opcode...
|
||||
|
||||
// Shader Model 5.0 (Direct3D 11)
|
||||
|
||||
// HS subshader beginning markers
|
||||
TPF_OPCODE_HS_DECLS,
|
||||
TPF_OPCODE_HS_CONTROL_POINT_PHASE,
|
||||
TPF_OPCODE_HS_FORK_PHASE,
|
||||
TPF_OPCODE_HS_JOIN_PHASE,
|
||||
|
||||
TPF_OPCODE_EMIT_STREAM,
|
||||
TPF_OPCODE_CUT_STREAM,
|
||||
TPF_OPCODE_EMITTHENCUT_STREAM,
|
||||
TPF_OPCODE_INTERFACE_CALL,
|
||||
|
||||
TPF_OPCODE_BUFINFO,
|
||||
TPF_OPCODE_DERIV_RTX_COARSE,
|
||||
TPF_OPCODE_DERIV_RTX_FINE,
|
||||
TPF_OPCODE_DERIV_RTY_COARSE,
|
||||
TPF_OPCODE_DERIV_RTY_FINE,
|
||||
TPF_OPCODE_GATHER4_C,
|
||||
TPF_OPCODE_GATHER4_PO,
|
||||
TPF_OPCODE_GATHER4_PO_C,
|
||||
TPF_OPCODE_RCP,
|
||||
TPF_OPCODE_F32TOF16,
|
||||
TPF_OPCODE_F16TOF32,
|
||||
TPF_OPCODE_UADDC,
|
||||
TPF_OPCODE_USUBB,
|
||||
TPF_OPCODE_COUNTBITS,
|
||||
TPF_OPCODE_FIRSTBIT_HI,
|
||||
TPF_OPCODE_FIRSTBIT_LO,
|
||||
TPF_OPCODE_FIRSTBIT_SHI,
|
||||
TPF_OPCODE_UBFE,
|
||||
TPF_OPCODE_IBFE,
|
||||
TPF_OPCODE_BFI,
|
||||
TPF_OPCODE_BFREV,
|
||||
TPF_OPCODE_SWAPC,
|
||||
|
||||
// these have custom formats
|
||||
TPF_OPCODE_DCL_STREAM,
|
||||
TPF_OPCODE_DCL_FUNCTION_BODY,
|
||||
TPF_OPCODE_DCL_FUNCTION_TABLE,
|
||||
TPF_OPCODE_DCL_INTERFACE,
|
||||
|
||||
// these have custom formats
|
||||
TPF_OPCODE_DCL_INPUT_CONTROL_POINT_COUNT,
|
||||
TPF_OPCODE_DCL_OUTPUT_CONTROL_POINT_COUNT,
|
||||
TPF_OPCODE_DCL_TESS_DOMAIN,
|
||||
TPF_OPCODE_DCL_TESS_PARTITIONING,
|
||||
TPF_OPCODE_DCL_TESS_OUTPUT_PRIMITIVE,
|
||||
TPF_OPCODE_DCL_HS_MAX_TESSFACTOR,
|
||||
TPF_OPCODE_DCL_HS_FORK_PHASE_INSTANCE_COUNT,
|
||||
TPF_OPCODE_DCL_HS_JOIN_PHASE_INSTANCE_COUNT,
|
||||
|
||||
// these have custom formats
|
||||
TPF_OPCODE_DCL_THREAD_GROUP,
|
||||
TPF_OPCODE_DCL_UNORDERED_ACCESS_VIEW_TYPED,
|
||||
TPF_OPCODE_DCL_UNORDERED_ACCESS_VIEW_RAW,
|
||||
TPF_OPCODE_DCL_UNORDERED_ACCESS_VIEW_STRUCTURED,
|
||||
TPF_OPCODE_DCL_THREAD_GROUP_SHARED_MEMORY_RAW,
|
||||
TPF_OPCODE_DCL_THREAD_GROUP_SHARED_MEMORY_STRUCTURED,
|
||||
TPF_OPCODE_DCL_RESOURCE_RAW,
|
||||
TPF_OPCODE_DCL_RESOURCE_STRUCTURED,
|
||||
|
||||
TPF_OPCODE_LD_UAV_TYPED,
|
||||
TPF_OPCODE_STORE_UAV_TYPED,
|
||||
TPF_OPCODE_LD_RAW,
|
||||
TPF_OPCODE_STORE_RAW,
|
||||
TPF_OPCODE_LD_STRUCTURED,
|
||||
TPF_OPCODE_STORE_STRUCTURED,
|
||||
|
||||
TPF_OPCODE_ATOMIC_AND,
|
||||
TPF_OPCODE_ATOMIC_OR,
|
||||
TPF_OPCODE_ATOMIC_XOR,
|
||||
TPF_OPCODE_ATOMIC_CMP_STORE,
|
||||
TPF_OPCODE_ATOMIC_IADD,
|
||||
TPF_OPCODE_ATOMIC_IMAX,
|
||||
TPF_OPCODE_ATOMIC_IMIN,
|
||||
TPF_OPCODE_ATOMIC_UMAX,
|
||||
TPF_OPCODE_ATOMIC_UMIN,
|
||||
|
||||
TPF_OPCODE_IMM_ATOMIC_ALLOC,
|
||||
TPF_OPCODE_IMM_ATOMIC_CONSUME,
|
||||
TPF_OPCODE_IMM_ATOMIC_IADD,
|
||||
TPF_OPCODE_IMM_ATOMIC_AND,
|
||||
TPF_OPCODE_IMM_ATOMIC_OR,
|
||||
TPF_OPCODE_IMM_ATOMIC_XOR,
|
||||
TPF_OPCODE_IMM_ATOMIC_EXCH,
|
||||
TPF_OPCODE_IMM_ATOMIC_CMP_EXCH,
|
||||
TPF_OPCODE_IMM_ATOMIC_IMAX,
|
||||
TPF_OPCODE_IMM_ATOMIC_IMIN,
|
||||
TPF_OPCODE_IMM_ATOMIC_UMAX,
|
||||
TPF_OPCODE_IMM_ATOMIC_UMIN,
|
||||
|
||||
TPF_OPCODE_SYNC,
|
||||
|
||||
TPF_OPCODE_DADD,
|
||||
TPF_OPCODE_DMAX,
|
||||
TPF_OPCODE_DMIN,
|
||||
TPF_OPCODE_DMUL,
|
||||
TPF_OPCODE_DEQ,
|
||||
TPF_OPCODE_DGE,
|
||||
TPF_OPCODE_DLT,
|
||||
TPF_OPCODE_DNE,
|
||||
TPF_OPCODE_DMOV,
|
||||
TPF_OPCODE_DMOVC,
|
||||
|
||||
TPF_OPCODE_DTOF,
|
||||
TPF_OPCODE_FTOD,
|
||||
|
||||
TPF_OPCODE_EVAL_SNAPPED,
|
||||
TPF_OPCODE_EVAL_SAMPLE_INDEX,
|
||||
TPF_OPCODE_EVAL_CENTROID,
|
||||
|
||||
TPF_OPCODE_DCL_GS_INSTANCE_COUNT,
|
||||
|
||||
TPF_OPCODE_D3D11_COUNT
|
||||
};
|
||||
#include "tpf_defs.h"
|
||||
|
||||
extern const char* tpf_opcode_names[];
|
||||
|
||||
enum tpf_file
|
||||
{
|
||||
TPF_FILE_TEMP = 0,
|
||||
TPF_FILE_INPUT = 1,
|
||||
TPF_FILE_OUTPUT = 2,
|
||||
TPF_FILE_INDEXABLE_TEMP = 3,
|
||||
TPF_FILE_IMMEDIATE32 = 4, // one 32-bit value for each component follows
|
||||
TPF_FILE_IMMEDIATE64 = 5, // one 64-bit value for each component follows
|
||||
TPF_FILE_SAMPLER = 6,
|
||||
TPF_FILE_RESOURCE = 7,
|
||||
TPF_FILE_CONSTANT_BUFFER= 8,
|
||||
TPF_FILE_IMMEDIATE_CONSTANT_BUFFER= 9,
|
||||
TPF_FILE_LABEL = 10,
|
||||
TPF_FILE_INPUT_PRIMITIVEID = 11,
|
||||
TPF_FILE_OUTPUT_DEPTH = 12,
|
||||
TPF_FILE_NULL = 13,
|
||||
|
||||
// Added in D3D10.1
|
||||
|
||||
TPF_FILE_RASTERIZER = 14,
|
||||
TPF_FILE_OUTPUT_COVERAGE_MASK = 15,
|
||||
|
||||
// Added in D3D11
|
||||
|
||||
TPF_FILE_STREAM = 16,
|
||||
TPF_FILE_FUNCTION_BODY = 17,
|
||||
TPF_FILE_FUNCTION_TABLE = 18,
|
||||
TPF_FILE_INTERFACE = 19,
|
||||
TPF_FILE_FUNCTION_INPUT = 20,
|
||||
TPF_FILE_FUNCTION_OUTPUT = 21,
|
||||
TPF_FILE_OUTPUT_CONTROL_POINT_ID = 22,
|
||||
TPF_FILE_INPUT_FORK_INSTANCE_ID = 23,
|
||||
TPF_FILE_INPUT_JOIN_INSTANCE_ID = 24,
|
||||
TPF_FILE_INPUT_CONTROL_POINT = 25,
|
||||
TPF_FILE_OUTPUT_CONTROL_POINT = 26,
|
||||
TPF_FILE_INPUT_PATCH_CONSTANT = 27,
|
||||
TPF_FILE_INPUT_DOMAIN_POINT = 28,
|
||||
TPF_FILE_THIS_POINTER = 29,
|
||||
TPF_FILE_UNORDERED_ACCESS_VIEW = 30,
|
||||
TPF_FILE_THREAD_GROUP_SHARED_MEMORY = 31,
|
||||
TPF_FILE_INPUT_THREAD_ID = 32,
|
||||
TPF_FILE_INPUT_THREAD_GROUP_ID = 33,
|
||||
TPF_FILE_INPUT_THREAD_ID_IN_GROUP = 34,
|
||||
TPF_FILE_INPUT_COVERAGE_MASK = 35,
|
||||
TPF_FILE_INPUT_THREAD_ID_IN_GROUP_FLATTENED = 36,
|
||||
TPF_FILE_INPUT_GS_INSTANCE_ID = 37,
|
||||
TPF_FILE_OUTPUT_DEPTH_GREATER_EQUAL = 38,
|
||||
TPF_FILE_OUTPUT_DEPTH_LESS_EQUAL = 39,
|
||||
TPF_FILE_CYCLE_COUNTER = 40,
|
||||
|
||||
TPF_FILE_COUNT = 41,
|
||||
};
|
||||
|
||||
extern const char* tpf_file_names[];
|
||||
extern const char* tpf_file_ms_names[];
|
||||
|
||||
enum tpf_target
|
||||
{
|
||||
TPF_TARGET_UNKNOWN = 0,
|
||||
TPF_TARGET_BUFFER = 1,
|
||||
TPF_TARGET_TEXTURE1D = 2,
|
||||
TPF_TARGET_TEXTURE2D = 3,
|
||||
TPF_TARGET_TEXTURE2DMS = 4,
|
||||
TPF_TARGET_TEXTURE3D = 5,
|
||||
TPF_TARGET_TEXTURECUBE = 6,
|
||||
TPF_TARGET_TEXTURE1DARRAY = 7,
|
||||
TPF_TARGET_TEXTURE2DARRAY = 8,
|
||||
TPF_TARGET_TEXTURE2DMSARRAY = 9,
|
||||
TPF_TARGET_TEXTURECUBEARRAY = 10,
|
||||
|
||||
// Added in D3D11
|
||||
TPF_TARGET_RAW_BUFFER = 11,
|
||||
TPF_TARGET_STRUCTURED_BUFFER = 12,
|
||||
};
|
||||
|
||||
extern const char* tpf_target_names[];
|
||||
|
||||
enum tpf_interpolation
|
||||
{
|
||||
TPF_INTERPOLATION_UNDEFINED = 0,
|
||||
TPF_INTERPOLATION_CONSTANT = 1,
|
||||
TPF_INTERPOLATION_LINEAR = 2,
|
||||
TPF_INTERPOLATION_LINEAR_CENTROID = 3,
|
||||
TPF_INTERPOLATION_LINEAR_NOPERSPECTIVE = 4,
|
||||
TPF_INTERPOLATION_LINEAR_NOPERSPECTIVE_CENTROID = 5,
|
||||
|
||||
// Added in D3D10.1
|
||||
TPF_INTERPOLATION_LINEAR_SAMPLE = 6,
|
||||
TPF_INTERPOLATION_LINEAR_NOPERSPECTIVE_SAMPLE = 7,
|
||||
};
|
||||
|
||||
extern const char* tpf_interpolation_names[];
|
||||
|
||||
enum tpf_sv
|
||||
{
|
||||
TPF_SV_UNDEFINED,
|
||||
TPF_SV_POSITION,
|
||||
TPF_SV_CLIP_DISTANCE,
|
||||
TPF_SV_CULL_DISTANCE,
|
||||
TPF_SV_RENDER_TARGET_ARRAY_INDEX,
|
||||
TPF_SV_VIEWPORT_ARRAY_INDEX,
|
||||
TPF_SV_VERTEX_ID,
|
||||
TPF_SV_PRIMITIVE_ID,
|
||||
TPF_SV_INSTANCE_ID,
|
||||
TPF_SV_IS_FRONT_FACE,
|
||||
TPF_SV_SAMPLE_INDEX,
|
||||
|
||||
// Added in D3D11
|
||||
TPF_SV_FINAL_QUAD_U_EQ_0_EDGE_TESSFACTOR,
|
||||
TPF_SV_FINAL_QUAD_V_EQ_0_EDGE_TESSFACTOR,
|
||||
TPF_SV_FINAL_QUAD_U_EQ_1_EDGE_TESSFACTOR,
|
||||
TPF_SV_FINAL_QUAD_V_EQ_1_EDGE_TESSFACTOR,
|
||||
TPF_SV_FINAL_QUAD_U_INSIDE_TESSFACTOR,
|
||||
TPF_SV_FINAL_QUAD_V_INSIDE_TESSFACTOR,
|
||||
TPF_SV_FINAL_TRI_U_EQ_0_EDGE_TESSFACTOR,
|
||||
TPF_SV_FINAL_TRI_V_EQ_0_EDGE_TESSFACTOR,
|
||||
TPF_SV_FINAL_TRI_W_EQ_0_EDGE_TESSFACTOR,
|
||||
TPF_SV_FINAL_TRI_INSIDE_TESSFACTOR,
|
||||
TPF_SV_FINAL_LINE_DETAIL_TESSFACTOR,
|
||||
TPF_SV_FINAL_LINE_DENSITY_TESSFACTOR,
|
||||
};
|
||||
|
||||
extern const char* tpf_sv_names[];
|
||||
|
||||
struct tpf_token_version
|
||||
|
|
@ -518,14 +155,6 @@ struct tpf_token_instruction
|
|||
};
|
||||
};
|
||||
|
||||
enum tpf_token_instruction_extended_type
|
||||
{
|
||||
TPF_TOKEN_INSTRUCTION_EXTENDED_TYPE_EMPTY = 0,
|
||||
TPF_TOKEN_INSTRUCTION_EXTENDED_TYPE_SAMPLE_CONTROLS = 1,
|
||||
TPF_TOKEN_INSTRUCTION_EXTENDED_TYPE_RESOURCE_DIM = 2,
|
||||
TPF_TOKEN_INSTRUCTION_EXTENDED_TYPE_RESOURCE_RETURN_TYPE = 3,
|
||||
};
|
||||
|
||||
union tpf_token_instruction_extended
|
||||
{
|
||||
struct
|
||||
|
|
@ -565,30 +194,6 @@ struct tpf_token_resource_return_type
|
|||
unsigned w : 4;
|
||||
};
|
||||
|
||||
enum tpf_operand_comps
|
||||
{
|
||||
TPF_OPERAND_COMPS_0 = 0,
|
||||
TPF_OPERAND_COMPS_1 = 1,
|
||||
TPF_OPERAND_COMPS_4 = 2,
|
||||
TPF_OPERAND_COMPS_N = 3
|
||||
};
|
||||
|
||||
enum tpf_operand_mode
|
||||
{
|
||||
TPF_OPERAND_MODE_MASK = 0,
|
||||
TPF_OPERAND_MODE_SWIZZLE = 1,
|
||||
TPF_OPERAND_MODE_SCALAR = 2
|
||||
};
|
||||
|
||||
enum tpf_operand_index_repr
|
||||
{
|
||||
TPF_OPERAND_INDEX_REPR_IMM32 = 0,
|
||||
TPF_OPERAND_INDEX_REPR_IMM64 = 1,
|
||||
TPF_OPERAND_INDEX_REPR_REG = 2,
|
||||
TPF_OPERAND_INDEX_REPR_REG_IMM32 = 3,
|
||||
TPF_OPERAND_INDEX_REPR_REG_IMM64 = 4,
|
||||
};
|
||||
|
||||
struct tpf_token_operand
|
||||
{
|
||||
unsigned comps_enum : 2; /* tpf_operands_comps */
|
||||
|
|
@ -606,12 +211,6 @@ struct tpf_token_operand
|
|||
#define TPF_OPERAND_SEL_SWZ(sel, i) (((sel) >> ((i) * 2)) & 3)
|
||||
#define TPF_OPERAND_SEL_SCALAR(sel) ((sel) & 3)
|
||||
|
||||
enum tpf_token_operand_extended_type
|
||||
{
|
||||
TPF_TOKEN_OPERAND_EXTENDED_TYPE_EMPTY = 0,
|
||||
TPF_TOKEN_OPERAND_EXTENDED_TYPE_MODIFIER = 1,
|
||||
};
|
||||
|
||||
struct tpf_token_operand_extended
|
||||
{
|
||||
unsigned type : 6;
|
||||
|
|
@ -806,3 +405,4 @@ bool tpf_find_labels(tpf_program& program);
|
|||
bool tpf_allocate_resource_sampler_pairs(tpf_program& program);
|
||||
|
||||
#endif /* TPF_H_ */
|
||||
|
||||
|
|
|
|||
|
|
@ -86,13 +86,13 @@ struct tpf_parser
|
|||
op.mask = 0xf;
|
||||
switch(optok.comps_enum)
|
||||
{
|
||||
case TPF_OPERAND_COMPS_0:
|
||||
case TPF_OPERAND_COMPNUM_0:
|
||||
op.comps = 0;
|
||||
break;
|
||||
case TPF_OPERAND_COMPS_1:
|
||||
case TPF_OPERAND_COMPNUM_1:
|
||||
op.comps = 1;
|
||||
break;
|
||||
case TPF_OPERAND_COMPS_4:
|
||||
case TPF_OPERAND_COMPNUM_4:
|
||||
op.comps = 4;
|
||||
op.mode = optok.mode;
|
||||
switch(optok.mode)
|
||||
|
|
@ -111,7 +111,7 @@ struct tpf_parser
|
|||
break;
|
||||
}
|
||||
break;
|
||||
case TPF_OPERAND_COMPS_N:
|
||||
case TPF_OPERAND_COMPNUM_N:
|
||||
fail("Unhandled operand component type");
|
||||
}
|
||||
op.file = (tpf_file)optok.file;
|
||||
|
|
@ -192,7 +192,7 @@ relative:
|
|||
read_token(&insntok);
|
||||
unsigned* insn_end = tokens - 1 + insntok.length;
|
||||
tpf_opcode opcode = (tpf_opcode)insntok.opcode;
|
||||
check(opcode < TPF_OPCODE_D3D11_COUNT);
|
||||
check(opcode < TPF_OPCODE_COUNT);
|
||||
|
||||
if(opcode == TPF_OPCODE_CUSTOMDATA)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,385 +0,0 @@
|
|||
/**************************************************************************
|
||||
*
|
||||
* Copyright 2010 Luca Barbieri
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject to
|
||||
* the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice (including the
|
||||
* next paragraph) shall be included in all copies or substantial
|
||||
* portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE
|
||||
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*
|
||||
**************************************************************************/
|
||||
|
||||
// generated with sed -re 's/TPF_WHATEVER_//; s/=.*//; s,//.*,,; s/,//; s/\s*//g;'|tr '[A-Z]' '[a-z]'|tr -s '\n'|sed -re 's/(.*)/\t"\1",/g'
|
||||
|
||||
const char* tpf_opcode_names[] =
|
||||
{
|
||||
"add",
|
||||
"and",
|
||||
"break",
|
||||
"breakc",
|
||||
"call",
|
||||
"callc",
|
||||
"case",
|
||||
"continue",
|
||||
"continuec",
|
||||
"cut",
|
||||
"default",
|
||||
"deriv_rtx",
|
||||
"deriv_rty",
|
||||
"discard",
|
||||
"div",
|
||||
"dp2",
|
||||
"dp3",
|
||||
"dp4",
|
||||
"else",
|
||||
"emit",
|
||||
"emitthencut",
|
||||
"endif",
|
||||
"endloop",
|
||||
"endswitch",
|
||||
"eq",
|
||||
"exp",
|
||||
"frc",
|
||||
"ftoi",
|
||||
"ftou",
|
||||
"ge",
|
||||
"iadd",
|
||||
"if",
|
||||
"ieq",
|
||||
"ige",
|
||||
"ilt",
|
||||
"imad",
|
||||
"imax",
|
||||
"imin",
|
||||
"imul",
|
||||
"ine",
|
||||
"ineg",
|
||||
"ishl",
|
||||
"ishr",
|
||||
"itof",
|
||||
"label",
|
||||
"ld",
|
||||
"ld_ms",
|
||||
"log",
|
||||
"loop",
|
||||
"lt",
|
||||
"mad",
|
||||
"min",
|
||||
"max",
|
||||
"customdata",
|
||||
"mov",
|
||||
"movc",
|
||||
"mul",
|
||||
"ne",
|
||||
"nop",
|
||||
"not",
|
||||
"or",
|
||||
"resinfo",
|
||||
"ret",
|
||||
"retc",
|
||||
"round_ne",
|
||||
"round_ni",
|
||||
"round_pi",
|
||||
"round_z",
|
||||
"rsq",
|
||||
"sample",
|
||||
"sample_c",
|
||||
"sample_c_lz",
|
||||
"sample_l",
|
||||
"sample_d",
|
||||
"sample_b",
|
||||
"sqrt",
|
||||
"switch",
|
||||
"sincos",
|
||||
"udiv",
|
||||
"ult",
|
||||
"uge",
|
||||
"umul",
|
||||
"umad",
|
||||
"umax",
|
||||
"umin",
|
||||
"ushr",
|
||||
"utof",
|
||||
"xor",
|
||||
"dcl_resource",
|
||||
"dcl_constant_buffer",
|
||||
"dcl_sampler",
|
||||
"dcl_index_range",
|
||||
"dcl_gs_output_primitive_topology",
|
||||
"dcl_gs_input_primitive",
|
||||
"dcl_max_output_vertex_count",
|
||||
"dcl_input",
|
||||
"dcl_input_sgv",
|
||||
"dcl_input_siv",
|
||||
"dcl_input_ps",
|
||||
"dcl_input_ps_sgv",
|
||||
"dcl_input_ps_siv",
|
||||
"dcl_output",
|
||||
"dcl_output_sgv",
|
||||
"dcl_output_siv",
|
||||
"dcl_temps",
|
||||
"dcl_indexable_temp",
|
||||
"dcl_global_flags",
|
||||
"d3d10_count",
|
||||
"lod",
|
||||
"gather4",
|
||||
"sample_pos",
|
||||
"sample_info",
|
||||
"d3d10_1_count",
|
||||
"hs_decls",
|
||||
"hs_control_point_phase",
|
||||
"hs_fork_phase",
|
||||
"hs_join_phase",
|
||||
"emit_stream",
|
||||
"cut_stream",
|
||||
"emitthencut_stream",
|
||||
"interface_call",
|
||||
"bufinfo",
|
||||
"deriv_rtx_coarse",
|
||||
"deriv_rtx_fine",
|
||||
"deriv_rty_coarse",
|
||||
"deriv_rty_fine",
|
||||
"gather4_c",
|
||||
"gather4_po",
|
||||
"gather4_po_c",
|
||||
"rcp",
|
||||
"f32tof16",
|
||||
"f16tof32",
|
||||
"uaddc",
|
||||
"usubb",
|
||||
"countbits",
|
||||
"firstbit_hi",
|
||||
"firstbit_lo",
|
||||
"firstbit_shi",
|
||||
"ubfe",
|
||||
"ibfe",
|
||||
"bfi",
|
||||
"bfrev",
|
||||
"swapc",
|
||||
"dcl_stream",
|
||||
"dcl_function_body",
|
||||
"dcl_function_table",
|
||||
"dcl_interface",
|
||||
"dcl_input_control_point_count",
|
||||
"dcl_output_control_point_count",
|
||||
"dcl_tess_domain",
|
||||
"dcl_tess_partitioning",
|
||||
"dcl_tess_output_primitive",
|
||||
"dcl_hs_max_tessfactor",
|
||||
"dcl_hs_fork_phase_instance_count",
|
||||
"dcl_hs_join_phase_instance_count",
|
||||
"dcl_thread_group",
|
||||
"dcl_unordered_access_view_typed",
|
||||
"dcl_unordered_access_view_raw",
|
||||
"dcl_unordered_access_view_structured",
|
||||
"dcl_thread_group_shared_memory_raw",
|
||||
"dcl_thread_group_shared_memory_structured",
|
||||
"dcl_resource_raw",
|
||||
"dcl_resource_structured",
|
||||
"ld_uav_typed",
|
||||
"store_uav_typed",
|
||||
"ld_raw",
|
||||
"store_raw",
|
||||
"ld_structured",
|
||||
"store_structured",
|
||||
"atomic_and",
|
||||
"atomic_or",
|
||||
"atomic_xor",
|
||||
"atomic_cmp_store",
|
||||
"atomic_iadd",
|
||||
"atomic_imax",
|
||||
"atomic_imin",
|
||||
"atomic_umax",
|
||||
"atomic_umin",
|
||||
"imm_atomic_alloc",
|
||||
"imm_atomic_consume",
|
||||
"imm_atomic_iadd",
|
||||
"imm_atomic_and",
|
||||
"imm_atomic_or",
|
||||
"imm_atomic_xor",
|
||||
"imm_atomic_exch",
|
||||
"imm_atomic_cmp_exch",
|
||||
"imm_atomic_imax",
|
||||
"imm_atomic_imin",
|
||||
"imm_atomic_umax",
|
||||
"imm_atomic_umin",
|
||||
"sync",
|
||||
"dadd",
|
||||
"dmax",
|
||||
"dmin",
|
||||
"dmul",
|
||||
"deq",
|
||||
"dge",
|
||||
"dlt",
|
||||
"dne",
|
||||
"dmov",
|
||||
"dmovc",
|
||||
"dtof",
|
||||
"ftod",
|
||||
"eval_snapped",
|
||||
"eval_sample_index",
|
||||
"eval_centroid",
|
||||
"dcl_gs_instance_count",
|
||||
"d3d11_count",
|
||||
};
|
||||
|
||||
const char* tpf_file_names[] =
|
||||
{
|
||||
"temp",
|
||||
"input",
|
||||
"output",
|
||||
"indexable_temp",
|
||||
"immediate32",
|
||||
"immediate64",
|
||||
"sampler",
|
||||
"resource",
|
||||
"constant_buffer",
|
||||
"immediate_constant_buffer",
|
||||
"label",
|
||||
"input_primitiveid",
|
||||
"output_depth",
|
||||
"null",
|
||||
"rasterizer",
|
||||
"output_coverage_mask",
|
||||
"stream",
|
||||
"function_body",
|
||||
"function_table",
|
||||
"interface",
|
||||
"function_input",
|
||||
"function_output",
|
||||
"output_control_point_id",
|
||||
"input_fork_instance_id",
|
||||
"input_join_instance_id",
|
||||
"input_control_point",
|
||||
"output_control_point",
|
||||
"input_patch_constant",
|
||||
"input_domain_point",
|
||||
"this_pointer",
|
||||
"unordered_access_view",
|
||||
"thread_group_shared_memory",
|
||||
"input_thread_id",
|
||||
"input_thread_group_id",
|
||||
"input_thread_id_in_group",
|
||||
"input_coverage_mask",
|
||||
"input_thread_id_in_group_flattened",
|
||||
"input_gs_instance_id",
|
||||
"output_depth_greater_equal",
|
||||
"output_depth_less_equal",
|
||||
"cycle_counter",
|
||||
};
|
||||
|
||||
const char* tpf_file_ms_names[] =
|
||||
{
|
||||
"r",
|
||||
"v",
|
||||
"o",
|
||||
"x",
|
||||
"l",
|
||||
"d",
|
||||
"sampler",
|
||||
"resource",
|
||||
"cb",
|
||||
"icb",
|
||||
"label",
|
||||
"vPrim",
|
||||
"oDepth",
|
||||
"null",
|
||||
"rasterizer",
|
||||
"oMask",
|
||||
"stream",
|
||||
"function_body",
|
||||
"function_table",
|
||||
"interface",
|
||||
"function_input",
|
||||
"function_output",
|
||||
"vOutputControlPointID",
|
||||
"vForkInstanceID",
|
||||
"vJoinInstanceID",
|
||||
"vicp",
|
||||
"vocp",
|
||||
"input_patch_constant",
|
||||
"vDomain",
|
||||
"this",
|
||||
"u",
|
||||
"g",
|
||||
"vThreadID",
|
||||
"vThreadGrouID",
|
||||
"vThreadIDInGroup",
|
||||
"vCoverage",
|
||||
"vThreadIDInGroupFlattened",
|
||||
"vGSInstanceID",
|
||||
"oDepthGE",
|
||||
"oDepthLE",
|
||||
"vCycleCounter",
|
||||
};
|
||||
|
||||
const char* tpf_target_names[] =
|
||||
{
|
||||
"unknown",
|
||||
"buffer",
|
||||
"texture1d",
|
||||
"texture2d",
|
||||
"texture2dms",
|
||||
"texture3d",
|
||||
"texturecube",
|
||||
"texture1darray",
|
||||
"texture2darray",
|
||||
"texture2dmsarray",
|
||||
"texturecubearray",
|
||||
"raw_buffer",
|
||||
"structured_buffer",
|
||||
};
|
||||
|
||||
const char* tpf_interpolation_names[] =
|
||||
{
|
||||
"undefined",
|
||||
"constant",
|
||||
"linear",
|
||||
"linear centroid",
|
||||
"linear noperspective",
|
||||
"linear noperspective centroid",
|
||||
"linear sample",
|
||||
"linear noperspective sample",
|
||||
};
|
||||
|
||||
const char* tpf_sv_names[] =
|
||||
{
|
||||
"undefined",
|
||||
"position",
|
||||
"clip_distance",
|
||||
"cull_distance",
|
||||
"render_target_array_index",
|
||||
"viewport_array_index",
|
||||
"vertex_id",
|
||||
"primitive_id",
|
||||
"instance_id",
|
||||
"is_front_face",
|
||||
"sample_index",
|
||||
"final_quad_u_eq_0_edge_tessfactor",
|
||||
"final_quad_v_eq_0_edge_tessfactor",
|
||||
"final_quad_u_eq_1_edge_tessfactor",
|
||||
"final_quad_v_eq_1_edge_tessfactor",
|
||||
"final_quad_u_inside_tessfactor",
|
||||
"final_quad_v_inside_tessfactor",
|
||||
"final_tri_u_eq_0_edge_tessfactor",
|
||||
"final_tri_v_eq_0_edge_tessfactor",
|
||||
"final_tri_w_eq_0_edge_tessfactor",
|
||||
"final_tri_inside_tessfactor",
|
||||
"final_line_detail_tessfactor",
|
||||
"final_line_density_tessfactor",
|
||||
};
|
||||
Loading…
Add table
Reference in a new issue