From: Gert Wollny Date: Sun, 9 May 2021 17:46:24 +0000 (+0200) Subject: r600/sfn: Use valid pixel mode only in fragment shaders X-Git-Tag: upstream/21.2.3~3292 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=129de7ee606540c34cd6addd682541d9ee8dcd63;p=platform%2Fupstream%2Fmesa.git r600/sfn: Use valid pixel mode only in fragment shaders The doc says that it should only be set in the FS. Signed-off-by: Gert Wollny Part-of: --- diff --git a/src/gallium/drivers/r600/sfn/sfn_ir_to_assembly.cpp b/src/gallium/drivers/r600/sfn/sfn_ir_to_assembly.cpp index e47a46b..9a4a4f5 100644 --- a/src/gallium/drivers/r600/sfn/sfn_ir_to_assembly.cpp +++ b/src/gallium/drivers/r600/sfn/sfn_ir_to_assembly.cpp @@ -757,7 +757,7 @@ bool AssemblyFromShaderLegacyImpl::visit(const FetchInstruction& fetch_instr) } } - m_bc->cf_last->vpm = fetch_instr.use_vpm(); + m_bc->cf_last->vpm = (m_bc->type == PIPE_SHADER_FRAGMENT) && fetch_instr.use_vpm(); m_bc->cf_last->barrier = 1; return true; @@ -858,7 +858,7 @@ bool AssemblyFromShaderLegacyImpl::visit(const GDSInstr& instr) int r = r600_bytecode_add_gds(m_bc, &gds); if (r) return false; - m_bc->cf_last->vpm = 1; + m_bc->cf_last->vpm = PIPE_SHADER_FRAGMENT == m_bc->type; m_bc->cf_last->barrier = 1; return true; } @@ -1041,7 +1041,7 @@ bool AssemblyFromShaderLegacyImpl::visit(const RatInstruction& instr) instr.data_swz(2) == PIPE_SWIZZLE_MAX) ; } - cf->vpm = 1; + cf->vpm = m_bc->type == PIPE_SHADER_FRAGMENT; cf->barrier = 1; cf->mark = instr.need_ack(); cf->output.elem_size = instr.elm_size();