mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 11:18:08 +02:00
amd: fix LOD_BIAS on gfx6-9 and adjust the lod bias CAP
Fixes: e673bb4ae4 - amd,util: fix how lod bias is converted to fixed-point
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21525>
This commit is contained in:
parent
98328a71dc
commit
ac0e83375a
3 changed files with 6 additions and 3 deletions
|
|
@ -7782,7 +7782,7 @@ radv_init_sampler(struct radv_device *device, struct radv_sampler *sampler,
|
|||
S_008F38_ANISO_OVERRIDE_GFX10(device->instance->disable_aniso_single_level);
|
||||
} else {
|
||||
sampler->state[2] |=
|
||||
S_008F38_LOD_BIAS(radv_float_to_sfixed(CLAMP(pCreateInfo->mipLodBias, -16, 15), 8)) |
|
||||
S_008F38_LOD_BIAS(radv_float_to_sfixed(CLAMP(pCreateInfo->mipLodBias, -16, 16), 8)) |
|
||||
S_008F38_DISABLE_LSB_CEIL(device->physical_device->rad_info.gfx_level <= GFX8) |
|
||||
S_008F38_FILTER_PREC_FIX(1) |
|
||||
S_008F38_ANISO_OVERRIDE_GFX8(device->instance->disable_aniso_single_level &&
|
||||
|
|
|
|||
|
|
@ -415,6 +415,8 @@ static int si_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
|
|||
|
||||
static float si_get_paramf(struct pipe_screen *pscreen, enum pipe_capf param)
|
||||
{
|
||||
struct si_screen *sscreen = (struct si_screen *)pscreen;
|
||||
|
||||
switch (param) {
|
||||
case PIPE_CAPF_MIN_LINE_WIDTH:
|
||||
case PIPE_CAPF_MIN_LINE_WIDTH_AA:
|
||||
|
|
@ -435,7 +437,8 @@ static float si_get_paramf(struct pipe_screen *pscreen, enum pipe_capf param)
|
|||
case PIPE_CAPF_MAX_TEXTURE_ANISOTROPY:
|
||||
return 16.0f;
|
||||
case PIPE_CAPF_MAX_TEXTURE_LOD_BIAS:
|
||||
return 16.0f;
|
||||
/* This is the maximum value of the LOD_BIAS sampler field. */
|
||||
return sscreen->info.gfx_level >= GFX10 ? 31 : 16;
|
||||
case PIPE_CAPF_MIN_CONSERVATIVE_RASTER_DILATE:
|
||||
case PIPE_CAPF_MAX_CONSERVATIVE_RASTER_DILATE:
|
||||
case PIPE_CAPF_CONSERVATIVE_RASTER_DILATE_GRANULARITY:
|
||||
|
|
|
|||
|
|
@ -4827,7 +4827,7 @@ static void *si_create_sampler_state(struct pipe_context *ctx,
|
|||
S_008F38_ANISO_OVERRIDE_GFX10(1);
|
||||
} else {
|
||||
rstate->val[0] |= S_008F30_COMPAT_MODE(sctx->gfx_level >= GFX8);
|
||||
rstate->val[2] |= S_008F38_LOD_BIAS(S_FIXED(CLAMP(state->lod_bias, -16, 15), 8)) |
|
||||
rstate->val[2] |= S_008F38_LOD_BIAS(S_FIXED(CLAMP(state->lod_bias, -16, 16), 8)) |
|
||||
S_008F38_DISABLE_LSB_CEIL(sctx->gfx_level <= GFX8) |
|
||||
S_008F38_FILTER_PREC_FIX(1) |
|
||||
S_008F38_ANISO_OVERRIDE_GFX8(sctx->gfx_level >= GFX8);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue