mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-22 15:40:11 +01:00
etnaviv: fix linear_nearest / nearest_linear filters on GC7000Lite
MIN filter is only used when LOD MAX is at least 4 (I guess the 2 LSB don't actually exist). Signed-off-by: Jonathan Marek <jonathan@marek.ca> Reviewed-by: Lucas Stach <l.stach@pengutronix.de>
This commit is contained in:
parent
95adc393eb
commit
ad48411d72
1 changed files with 4 additions and 2 deletions
|
|
@ -62,13 +62,15 @@ etna_create_sampler_state_desc(struct pipe_context *pipe,
|
|||
cs->SAMP_CTRL1 = VIVS_NTE_DESCRIPTOR_SAMP_CTRL1_UNK1;
|
||||
uint32_t min_lod_fp8 = MIN2(etna_float_to_fixp88(ss->min_lod), 0xfff);
|
||||
uint32_t max_lod_fp8 = MIN2(etna_float_to_fixp88(ss->max_lod), 0xfff);
|
||||
uint32_t max_lod_min = ss->min_img_filter != ss->mag_img_filter ? 4 : 0;
|
||||
|
||||
if (ss->min_mip_filter != PIPE_TEX_MIPFILTER_NONE) {
|
||||
cs->SAMP_LOD_MINMAX =
|
||||
VIVS_NTE_DESCRIPTOR_SAMP_LOD_MINMAX_MAX(max_lod_fp8) |
|
||||
VIVS_NTE_DESCRIPTOR_SAMP_LOD_MINMAX_MAX(MAX2(max_lod_fp8, max_lod_min)) |
|
||||
VIVS_NTE_DESCRIPTOR_SAMP_LOD_MINMAX_MIN(min_lod_fp8);
|
||||
} else {
|
||||
cs->SAMP_LOD_MINMAX =
|
||||
VIVS_NTE_DESCRIPTOR_SAMP_LOD_MINMAX_MAX(min_lod_fp8) |
|
||||
VIVS_NTE_DESCRIPTOR_SAMP_LOD_MINMAX_MAX(MAX2(max_lod_fp8, max_lod_min)) |
|
||||
VIVS_NTE_DESCRIPTOR_SAMP_LOD_MINMAX_MIN(min_lod_fp8);
|
||||
}
|
||||
cs->SAMP_LOD_BIAS =
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue