Revert "radv,aco: don't use MUBUF for multi-channel loads on GFX8 with robustness2"

This reverts commit a8a6b9fb2f.

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:
Rhys Perry 2021-01-20 16:05:04 +00:00 committed by Marge Bot
parent 157c6b0f33
commit 20a0744e22
3 changed files with 2 additions and 10 deletions

View file

@ -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);

View file

@ -1455,7 +1455,6 @@ radv_shader_variant_compile(struct radv_device *device, struct vk_shader_module
options.explicit_scratch_args = !radv_use_llvm_for_stage(device, stage);
options.robust_buffer_access = device->robust_buffer_access;
options.robust_buffer_access2 = device->robust_buffer_access2;
options.disable_optimizations = disable_optimizations;
options.wgp_mode = radv_should_use_wgp_mode(device, stage, info);

View file

@ -128,7 +128,6 @@ struct radv_nir_compiler_options {
bool explicit_scratch_args;
bool clamp_shadow_reference;
bool robust_buffer_access;
bool robust_buffer_access2;
bool adjust_frag_coord_z;
bool dump_shader;
bool dump_preoptir;