radv,aco: don't use lower_to_fragment_fetch_amd on GFX11+
FMask doesn't exist on GFX11. Have txf_ms take the fragment_fetch_amd path. Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19375>
This commit is contained in:
@@ -9412,7 +9412,8 @@ get_const_vec(nir_ssa_def* vec, nir_const_value* cv[4])
|
||||
void
|
||||
visit_tex(isel_context* ctx, nir_tex_instr* instr)
|
||||
{
|
||||
assert(instr->op != nir_texop_txf_ms && instr->op != nir_texop_samples_identical);
|
||||
assert((instr->op != nir_texop_txf_ms || ctx->program->gfx_level >= GFX11) &&
|
||||
instr->op != nir_texop_samples_identical);
|
||||
|
||||
Builder bld(ctx->program, ctx->block);
|
||||
bool has_bias = false, has_lod = false, level_zero = false, has_compare = false,
|
||||
@@ -9826,7 +9827,7 @@ visit_tex(isel_context* ctx, nir_tex_instr* instr)
|
||||
args.insert(args.end(), coords.begin(), coords.end());
|
||||
|
||||
if (instr->op == nir_texop_txf || instr->op == nir_texop_fragment_fetch_amd ||
|
||||
instr->op == nir_texop_fragment_mask_fetch_amd) {
|
||||
instr->op == nir_texop_fragment_mask_fetch_amd || instr->op == nir_texop_txf_ms) {
|
||||
aco_opcode op = level_zero || instr->sampler_dim == GLSL_SAMPLER_DIM_MS ||
|
||||
instr->sampler_dim == GLSL_SAMPLER_DIM_SUBPASS_MS
|
||||
? aco_opcode::image_load
|
||||
|
||||
@@ -981,12 +981,12 @@ radv_shader_spirv_to_nir(struct radv_device *device, const struct radv_pipeline_
|
||||
NIR_PASS(_, nir, radv_nir_lower_ray_queries, device);
|
||||
}
|
||||
|
||||
static const nir_lower_tex_options tex_options = {
|
||||
nir_lower_tex_options tex_options = {
|
||||
.lower_txp = ~0,
|
||||
.lower_txf_offset = true,
|
||||
.lower_tg4_offsets = true,
|
||||
.lower_txs_cube_array = true,
|
||||
.lower_to_fragment_fetch_amd = true,
|
||||
.lower_to_fragment_fetch_amd = device->physical_device->rad_info.gfx_level < GFX11,
|
||||
.lower_lod_zero_width = true,
|
||||
.lower_invalid_implicit_lod = true,
|
||||
.lower_array_layer_round_even = true,
|
||||
|
||||
Reference in New Issue
Block a user