Mesa (main): r600/sfn: Use valid pixel mode only in fragment shaders
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Tue May 18 20:31:01 UTC 2021
Module: Mesa
Branch: main
Commit: 129de7ee606540c34cd6addd682541d9ee8dcd63
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=129de7ee606540c34cd6addd682541d9ee8dcd63
Author: Gert Wollny <gert.wollny at collabora.com>
Date: Sun May 9 19:46:24 2021 +0200
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 <gert.wollny at collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10608>
---
src/gallium/drivers/r600/sfn/sfn_ir_to_assembly.cpp | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
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 e47a46b889c..9a4a4f5fbe5 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();
More information about the mesa-commit
mailing list