Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/ValveSoftware/vkd3d.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilip Rebohle <philip.rebohle@tu-dortmund.de>2020-05-09 11:31:30 +0300
committerHans-Kristian Arntzen <post@arntzen-software.no>2020-05-12 13:13:30 +0300
commitfa029a1a8488483afc2eda986724debcd122ab54 (patch)
treee6dcd5f810d8a726624bd2253949529406a7be43
parent13c6d064ab9bbfdf902850b8d6b14751f560723e (diff)
vkd3d-shader: Add definitions for sparse feedback instructions.
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
-rw-r--r--libs/vkd3d-shader/dxbc.c34
-rw-r--r--libs/vkd3d-shader/vkd3d_shader_private.h16
2 files changed, 49 insertions, 1 deletions
diff --git a/libs/vkd3d-shader/dxbc.c b/libs/vkd3d-shader/dxbc.c
index 13367e15..53ef2beb 100644
--- a/libs/vkd3d-shader/dxbc.c
+++ b/libs/vkd3d-shader/dxbc.c
@@ -301,6 +301,22 @@ enum vkd3d_sm4_opcode
VKD3D_SM5_OP_EVAL_SAMPLE_INDEX = 0xcc,
VKD3D_SM5_OP_EVAL_CENTROID = 0xcd,
VKD3D_SM5_OP_DCL_GS_INSTANCES = 0xce,
+ VKD3D_SM5_OP_GATHER4_FEEDBACK = 0xdb,
+ VKD3D_SM5_OP_GATHER4_C_FEEDBACK = 0xdc,
+ VKD3D_SM5_OP_GATHER4_PO_FEEDBACK = 0xdd,
+ VKD3D_SM5_OP_GATHER4_PO_C_FEEDBACK = 0xde,
+ VKD3D_SM5_OP_LD_FEEDBACK = 0xdf,
+ VKD3D_SM5_OP_LD_MS_FEEDBACK = 0xe0,
+ VKD3D_SM5_OP_LD_UAV_TYPED_FEEDBACK = 0xe1,
+ VKD3D_SM5_OP_LD_RAW_FEEDBACK = 0xe2,
+ VKD3D_SM5_OP_LD_STRUCTURED_FEEDBACK = 0xe3,
+ VKD3D_SM5_OP_SAMPLE_L_FEEDBACK = 0xe4,
+ VKD3D_SM5_OP_SAMPLE_C_LZ_FEEDBACK = 0xe5,
+ VKD3D_SM5_OP_SAMPLE_CLAMP_FEEDBACK = 0xe6,
+ VKD3D_SM5_OP_SAMPLE_B_CLAMP_FEEDBACK = 0xe7,
+ VKD3D_SM5_OP_SAMPLE_D_CLAMP_FEEDBACK = 0xe8,
+ VKD3D_SM5_OP_SAMPLE_C_CLAMP_FEEDBACK = 0xe9,
+ VKD3D_SM5_OP_CHECK_ACCESS_FULLY_MAPPED = 0xea,
};
enum vkd3d_sm4_register_type
@@ -451,7 +467,7 @@ struct vkd3d_sm4_data
unsigned int output_map[MAX_REG_OUTPUT];
- struct vkd3d_shader_src_param src_param[5];
+ struct vkd3d_shader_src_param src_param[6];
struct vkd3d_shader_dst_param dst_param[2];
struct list src_free;
struct list src;
@@ -1202,6 +1218,22 @@ static const struct vkd3d_sm4_opcode_info opcode_table[] =
{VKD3D_SM5_OP_EVAL_CENTROID, VKD3DSIH_EVAL_CENTROID, "f", "f"},
{VKD3D_SM5_OP_DCL_GS_INSTANCES, VKD3DSIH_DCL_GS_INSTANCES, "", "",
shader_sm4_read_declaration_count},
+ {VKD3D_SM5_OP_GATHER4_FEEDBACK, VKD3DSIH_GATHER4_FEEDBACK, "fu", "fRS"},
+ {VKD3D_SM5_OP_GATHER4_C_FEEDBACK, VKD3DSIH_GATHER4_C_FEEDBACK, "fu", "fRSf"},
+ {VKD3D_SM5_OP_GATHER4_PO_FEEDBACK, VKD3DSIH_GATHER4_PO_FEEDBACK, "fu", "fiRS"},
+ {VKD3D_SM5_OP_GATHER4_PO_C_FEEDBACK, VKD3DSIH_GATHER4_PO_C_FEEDBACK, "fu", "fiRSf"},
+ {VKD3D_SM5_OP_LD_FEEDBACK, VKD3DSIH_LD_FEEDBACK, "uu", "iR"},
+ {VKD3D_SM5_OP_LD_MS_FEEDBACK, VKD3DSIH_LD2DMS_FEEDBACK, "uu", "iRi"},
+ {VKD3D_SM5_OP_LD_UAV_TYPED_FEEDBACK, VKD3DSIH_LD_UAV_TYPED_FEEDBACK, "uu", "iU"},
+ {VKD3D_SM5_OP_LD_RAW_FEEDBACK, VKD3DSIH_LD_RAW_FEEDBACK, "uu", "iR"},
+ {VKD3D_SM5_OP_LD_STRUCTURED_FEEDBACK, VKD3DSIH_LD_STRUCTURED_FEEDBACK, "uu", "iiR"},
+ {VKD3D_SM5_OP_SAMPLE_L_FEEDBACK, VKD3DSIH_SAMPLE_LOD_FEEDBACK, "fu", "fRSf"},
+ {VKD3D_SM5_OP_SAMPLE_C_LZ_FEEDBACK, VKD3DSIH_SAMPLE_C_LZ_FEEDBACK, "fu", "fRSf"},
+ {VKD3D_SM5_OP_SAMPLE_CLAMP_FEEDBACK, VKD3DSIH_SAMPLE_FEEDBACK, "fu", "fRSf"},
+ {VKD3D_SM5_OP_SAMPLE_B_CLAMP_FEEDBACK, VKD3DSIH_SAMPLE_B_FEEDBACK, "fu", "fRSff"},
+ {VKD3D_SM5_OP_SAMPLE_D_CLAMP_FEEDBACK, VKD3DSIH_SAMPLE_GRAD_FEEDBACK, "fu", "fRSfff"},
+ {VKD3D_SM5_OP_SAMPLE_C_CLAMP_FEEDBACK, VKD3DSIH_SAMPLE_C_FEEDBACK, "fu", "fRSff"},
+ {VKD3D_SM5_OP_CHECK_ACCESS_FULLY_MAPPED, VKD3DSIH_CHECK_ACCESS_FULLY_MAPPED, "u", "u"},
};
static const enum vkd3d_shader_register_type register_type_table[] =
diff --git a/libs/vkd3d-shader/vkd3d_shader_private.h b/libs/vkd3d-shader/vkd3d_shader_private.h
index 2850f807..54c799df 100644
--- a/libs/vkd3d-shader/vkd3d_shader_private.h
+++ b/libs/vkd3d-shader/vkd3d_shader_private.h
@@ -83,6 +83,7 @@ enum VKD3D_SHADER_INSTRUCTION_HANDLER
VKD3DSIH_CALL,
VKD3DSIH_CALLNZ,
VKD3DSIH_CASE,
+ VKD3DSIH_CHECK_ACCESS_FULLY_MAPPED,
VKD3DSIH_CMP,
VKD3DSIH_CND,
VKD3DSIH_CONTINUE,
@@ -170,8 +171,12 @@ enum VKD3D_SHADER_INSTRUCTION_HANDLER
VKD3DSIH_FTOU,
VKD3DSIH_GATHER4,
VKD3DSIH_GATHER4_C,
+ VKD3DSIH_GATHER4_C_FEEDBACK,
+ VKD3DSIH_GATHER4_FEEDBACK,
VKD3DSIH_GATHER4_PO,
VKD3DSIH_GATHER4_PO_C,
+ VKD3DSIH_GATHER4_PO_C_FEEDBACK,
+ VKD3DSIH_GATHER4_PO_FEEDBACK,
VKD3DSIH_GE,
VKD3DSIH_HS_CONTROL_POINT_PHASE,
VKD3DSIH_HS_DECLS,
@@ -207,10 +212,15 @@ enum VKD3D_SHADER_INSTRUCTION_HANDLER
VKD3DSIH_ITOF,
VKD3DSIH_LABEL,
VKD3DSIH_LD,
+ VKD3DSIH_LD_FEEDBACK,
VKD3DSIH_LD2DMS,
+ VKD3DSIH_LD2DMS_FEEDBACK,
VKD3DSIH_LD_RAW,
+ VKD3DSIH_LD_RAW_FEEDBACK,
VKD3DSIH_LD_STRUCTURED,
+ VKD3DSIH_LD_STRUCTURED_FEEDBACK,
VKD3DSIH_LD_UAV_TYPED,
+ VKD3DSIH_LD_UAV_TYPED_FEEDBACK,
VKD3DSIH_LIT,
VKD3DSIH_LOD,
VKD3DSIH_LOG,
@@ -249,11 +259,17 @@ enum VKD3D_SHADER_INSTRUCTION_HANDLER
VKD3DSIH_RSQ,
VKD3DSIH_SAMPLE,
VKD3DSIH_SAMPLE_B,
+ VKD3DSIH_SAMPLE_B_FEEDBACK,
VKD3DSIH_SAMPLE_C,
+ VKD3DSIH_SAMPLE_C_FEEDBACK,
VKD3DSIH_SAMPLE_C_LZ,
+ VKD3DSIH_SAMPLE_C_LZ_FEEDBACK,
+ VKD3DSIH_SAMPLE_FEEDBACK,
VKD3DSIH_SAMPLE_GRAD,
+ VKD3DSIH_SAMPLE_GRAD_FEEDBACK,
VKD3DSIH_SAMPLE_INFO,
VKD3DSIH_SAMPLE_LOD,
+ VKD3DSIH_SAMPLE_LOD_FEEDBACK,
VKD3DSIH_SAMPLE_POS,
VKD3DSIH_SETP,
VKD3DSIH_SGE,