mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 09:08:10 +02:00
nv50: fix max level clamping on G80
It appears that the G80 did not have support for the sampler view
first/last clamping. Put the view's last level in the place of the
texture's so that it doesn't go past what the sampler view allows.
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Cc: mesa-stable@lists.freedesktop.org
(cherry picked from commit 801d41fa43)
This commit is contained in:
parent
2a77b82a92
commit
954c18fb5c
1 changed files with 9 additions and 2 deletions
|
|
@ -71,6 +71,7 @@ nv50_create_texture_view(struct pipe_context *pipe,
|
|||
uint32_t flags,
|
||||
enum pipe_texture_target target)
|
||||
{
|
||||
const uint32_t class_3d = nouveau_context(pipe)->screen->class_3d;
|
||||
const struct util_format_description *desc;
|
||||
uint64_t addr;
|
||||
uint32_t *tic;
|
||||
|
|
@ -201,11 +202,17 @@ nv50_create_texture_view(struct pipe_context *pipe,
|
|||
|
||||
tic[5] = (mt->base.base.height0 << mt->ms_y) & 0xffff;
|
||||
tic[5] |= depth << 16;
|
||||
tic[5] |= mt->base.base.last_level << NV50_TIC_5_LAST_LEVEL__SHIFT;
|
||||
if (class_3d > NV50_3D_CLASS)
|
||||
tic[5] |= mt->base.base.last_level << NV50_TIC_5_LAST_LEVEL__SHIFT;
|
||||
else
|
||||
tic[5] |= view->pipe.u.tex.last_level << NV50_TIC_5_LAST_LEVEL__SHIFT;
|
||||
|
||||
tic[6] = (mt->ms_x > 1) ? 0x88000000 : 0x03000000; /* sampling points */
|
||||
|
||||
tic[7] = (view->pipe.u.tex.last_level << 4) | view->pipe.u.tex.first_level;
|
||||
if (class_3d > NV50_3D_CLASS)
|
||||
tic[7] = (view->pipe.u.tex.last_level << 4) | view->pipe.u.tex.first_level;
|
||||
else
|
||||
tic[7] = 0;
|
||||
|
||||
if (unlikely(!(tic[2] & NV50_TIC_2_NORMALIZED_COORDS)))
|
||||
if (mt->base.base.last_level)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue