On Mon Apr 3 14:39:41 2023 +0000, Henri Verbeet wrote:
@@ -633,7 +633,7 @@ static const struct vkd3d_sm4_opcode_info
opcode_table[] =
{VKD3D_SM4_OP_DEFAULT, VKD3DSIH_DEFAULT,
"", ""},
{VKD3D_SM4_OP_DERIV_RTX, VKD3DSIH_DSX,
"f", "f"},
{VKD3D_SM4_OP_DERIV_RTY, VKD3DSIH_DSY,
"f", "f"},
- {VKD3D_SM4_OP_DISCARD, VKD3DSIH_TEXKILL,
"", "u",
- {VKD3D_SM4_OP_DISCARD, VKD3DSIH_DISCARD,
"", "u",
shader_sm4_read_conditional_op}, {VKD3D_SM4_OP_DIV, VKD3DSIH_DIV,
"f", "ff"},
{VKD3D_SM4_OP_DP2, VKD3DSIH_DP2,
"f", "ff"},
This breaks "discard" handling in the SPIR-V backend.
I see what you mean, and have two questions now. Do we need both texkill -> SpvOpKill and discard -> SpvOpKill? For example, do we convert sm1 -> spirv directly? And second questions, what happens to texkill/discard arguments when translating to spirv?