On Mon Apr 3 14:39:41 2023 +0000, Henri Verbeet wrote:
```diff @@ -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?
-- https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/136#note_28707