r600/sfn: Fix Ring output swizzle masks
authorGert Wollny <gert.wollny@collabora.com>
Sun, 5 Jul 2020 14:54:10 +0000 (16:54 +0200)
committerMarge Bot <eric+marge@anholt.net>
Mon, 20 Jul 2020 09:32:51 +0000 (09:32 +0000)
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5963>

src/gallium/drivers/r600/sfn/sfn_vertexstageexport.cpp

index b7809a060f677ccd26d320d47a02d84b6dbceb64..756da878169b602463ea9f86d74fd0a2e93dd759 100644 (file)
@@ -199,7 +199,7 @@ bool VertexStageExportForFS::emit_varying_param(const nir_variable *out_var, nir
 
    m_proc.sh_info().output[out_var->data.driver_location].write_mask = write_mask;
 
-   GPRVector value = m_proc.vec_from_nir_with_fetch_constant(instr->src[1], write_mask, swizzle);
+   GPRVector value = m_proc.vec_from_nir_with_fetch_constant(instr->src[1], write_mask, swizzle, true);
    m_proc.sh_info().output[out_var->data.driver_location].gpr = value.sel();
 
    /* This should use the registers!! */
@@ -417,7 +417,7 @@ bool VertexStageExportForGS::store_deref(const nir_variable *out_var, nir_intrin
    uint32_t write_mask =  (1 << instr->num_components) - 1;
 
    GPRVector value = m_proc.vec_from_nir_with_fetch_constant(instr->src[1], write_mask,
-         swizzle_from_comps(instr->num_components));
+         swizzle_from_comps(instr->num_components), true);
 
    auto ir = new MemRingOutIntruction(cf_mem_ring, mem_write, value,
                                       ring_offset >> 2, 4, PValue());