From: Józef Kucia Subject: [PATCH 6/7] wined3d: Update UAV read bitmask for ld_raw and ld_structured instructions. Message-Id: <20170224112741.13973-6-jkucia@codeweavers.com> Date: Fri, 24 Feb 2017 12:27:40 +0100 In-Reply-To: <20170224112741.13973-1-jkucia@codeweavers.com> References: <20170224112741.13973-1-jkucia@codeweavers.com> Signed-off-by: Józef Kucia --- dlls/wined3d/shader.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/dlls/wined3d/shader.c b/dlls/wined3d/shader.c index 14cb243..fa61674 100644 --- a/dlls/wined3d/shader.c +++ b/dlls/wined3d/shader.c @@ -1331,11 +1331,15 @@ static HRESULT shader_get_registers_used(struct wined3d_shader *shader, const st || (WINED3DSIH_IMM_ATOMIC_AND <= ins.handler_idx && ins.handler_idx <= WINED3DSIH_IMM_ATOMIC_XOR && ins.handler_idx != WINED3DSIH_IMM_ATOMIC_CONSUME) - || ins.handler_idx == WINED3DSIH_LD_UAV_TYPED) + || ins.handler_idx == WINED3DSIH_LD_UAV_TYPED + || (ins.handler_idx == WINED3DSIH_LD_RAW && ins.src[1].reg.type == WINED3DSPR_UAV) + || (ins.handler_idx == WINED3DSIH_LD_STRUCTURED && ins.src[2].reg.type == WINED3DSPR_UAV)) { unsigned int reg_idx; - if (ins.handler_idx == WINED3DSIH_LD_UAV_TYPED) + if (ins.handler_idx == WINED3DSIH_LD_UAV_TYPED || ins.handler_idx == WINED3DSIH_LD_RAW) reg_idx = ins.src[1].reg.idx[0].offset; + else if (ins.handler_idx == WINED3DSIH_LD_STRUCTURED) + reg_idx = ins.src[2].reg.idx[0].offset; else if (WINED3DSIH_ATOMIC_AND <= ins.handler_idx && ins.handler_idx <= WINED3DSIH_ATOMIC_XOR) reg_idx = ins.dst[0].reg.idx[0].offset; else -- 2.10.2