Revert "radv,aco: don't use MUBUF for multi-channel loads on GFX8 with robustness2"
This reverts commit a8a6b9fb2fdcb1bea55707fa0c2b8e96f03c6b5b. This is no longer necessary now that we fixup the size when creating the descriptors. Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7871>
This commit is contained in:
@@ -4731,18 +4731,12 @@ void visit_load_input(isel_context *ctx, nir_intrinsic_instr *instr)
|
||||
unsigned fetch_offset = attrib_offset + channel_start * vtx_info->chan_byte_size;
|
||||
bool expanded = false;
|
||||
|
||||
/* Use MUBUF when possible to avoid possible alignment issues.
|
||||
* We don't use MUBUF for multi-component loads because
|
||||
* robustBufferAccess2 requires that bounds checking is per-attribute,
|
||||
* but MUBUF is per-dword. Other generations get around this by doing
|
||||
* bounds checking with the index, instead of the offset like GFX8. */
|
||||
/* use MUBUF when possible to avoid possible alignment issues */
|
||||
/* TODO: we could use SDWA to unpack 8/16-bit attributes without extra instructions */
|
||||
bool use_mubuf = (nfmt == V_008F0C_BUF_NUM_FORMAT_FLOAT ||
|
||||
nfmt == V_008F0C_BUF_NUM_FORMAT_UINT ||
|
||||
nfmt == V_008F0C_BUF_NUM_FORMAT_SINT) &&
|
||||
vtx_info->chan_byte_size == 4 &&
|
||||
(fetch_component == 1 || ctx->options->chip_class != GFX8 ||
|
||||
!ctx->options->robust_buffer_access2);
|
||||
vtx_info->chan_byte_size == 4;
|
||||
unsigned fetch_dfmt = V_008F0C_BUF_DATA_FORMAT_INVALID;
|
||||
if (!use_mubuf) {
|
||||
fetch_dfmt = get_fetch_data_format(ctx, vtx_info, fetch_offset, attrib_stride, &fetch_component);
|
||||
|
||||
Reference in New Issue
Block a user