mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-26 23:40:10 +01:00
nak: Handle location_frac for FS outputs in nak_from_nir.rs
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998>
This commit is contained in:
parent
1251bb7588
commit
aa76c86042
2 changed files with 6 additions and 6 deletions
|
|
@ -1728,10 +1728,12 @@ impl<'a> ShaderFromNir<'a> {
|
|||
*/
|
||||
let data = *self.get_src(&srcs[0]).as_ssa().unwrap();
|
||||
assert!(offset_as_u32 == Some(0));
|
||||
let base: usize = intrin.base().try_into().unwrap();
|
||||
let base: u8 = intrin.base().try_into().unwrap();
|
||||
let comp: u8 = intrin.component().try_into().unwrap();
|
||||
assert!(base % 4 == 0);
|
||||
let out_idx = usize::from((base / 4) + comp);
|
||||
for c in 0..usize::from(comps) {
|
||||
self.fs_out_regs[(base / 4) + c] = data[c];
|
||||
self.fs_out_regs[out_idx + c] = data[c];
|
||||
}
|
||||
}
|
||||
ShaderIoInfo::Vtg(io) => {
|
||||
|
|
|
|||
|
|
@ -519,8 +519,7 @@ nak_nir_lower_fs_outputs(nir_shader *nir)
|
|||
break;
|
||||
case FRAG_RESULT_COLOR:
|
||||
assert(var->data.index == 0);
|
||||
var->data.driver_location =
|
||||
NAK_FS_OUT_COLOR0 + var->data.location_frac * 4;
|
||||
var->data.driver_location = NAK_FS_OUT_COLOR0;
|
||||
break;
|
||||
case FRAG_RESULT_SAMPLE_MASK:
|
||||
assert(var->data.index == 0);
|
||||
|
|
@ -532,8 +531,7 @@ nak_nir_lower_fs_outputs(nir_shader *nir)
|
|||
assert(var->data.index < 2);
|
||||
const unsigned out =
|
||||
(var->data.location - FRAG_RESULT_DATA0) + var->data.index;
|
||||
var->data.driver_location =
|
||||
NAK_FS_OUT_COLOR(out) + var->data.location_frac * 4;
|
||||
var->data.driver_location = NAK_FS_OUT_COLOR(out);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue