virgl: Clear all indirect flags when writing to a temporary
The output may be an array, e.g. with a TCS shader, so if the
value is written to a temporaray first remove the indirect
indicator for that write.
Fixes: 36f12c85c8
virgl: Extend integer write out output fix to all non-move integers ops
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13295>
This commit is contained in:
@@ -681,7 +681,6 @@ spec@arb_tessellation_shader@execution@gs-primitiveid-instanced,Fail
|
||||
spec@arb_tessellation_shader@execution@tcs-tes-levels-out-of-bounds-write,Crash
|
||||
|
||||
spec@arb_tessellation_shader@execution@variable-indexing@tcs-input-array-dvec4-index-rd,Fail
|
||||
spec@arb_tessellation_shader@execution@variable-indexing@tcs-tes-array-in-struct,Fail
|
||||
spec@arb_tessellation_shader@execution@variable-indexing@tcs-output-array-dvec4-index-wr,Fail
|
||||
spec@arb_tessellation_shader@execution@variable-indexing@tes-input-array-dvec4-index-rd,Fail
|
||||
spec@arb_tessellation_shader@execution@variable-indexing@vs-output-array-dvec4-index-wr-before-tcs,Fail
|
||||
|
@@ -393,6 +393,8 @@ virgl_tgsi_transform_instruction(struct tgsi_transform_context *ctx,
|
||||
struct tgsi_full_instruction op_to_temp = *inst;
|
||||
op_to_temp.Dst[0].Register.File = TGSI_FILE_TEMPORARY;
|
||||
op_to_temp.Dst[0].Register.Index = vtctx->src_temp;
|
||||
op_to_temp.Dst[0].Dimension.Indirect = 0;
|
||||
op_to_temp.Dst[0].Register.Indirect = 0;
|
||||
ctx->emit_instruction(ctx, &op_to_temp);
|
||||
|
||||
inst->Instruction.Opcode = TGSI_OPCODE_MOV;
|
||||
|
Reference in New Issue
Block a user