mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-09 04:38:03 +02:00
nvfx: fix/workaround nv3x hwtnl issues
This patch re-emits the viewport state on framebuffer or rasterizer change. This seems to be necessary on nv3x, but the reason is not fully understood. It is quite likely that this isn't really the correct fix, but seems to work, and makes nv3x much better.
This commit is contained in:
parent
3e17a5b047
commit
c652ad907f
1 changed files with 6 additions and 5 deletions
|
|
@ -1,15 +1,16 @@
|
|||
#include "nvfx_context.h"
|
||||
|
||||
/* Having this depend on FB and RAST looks wrong, but it seems
|
||||
necessary to make this work on nv3x
|
||||
TODO: find the right fix
|
||||
*/
|
||||
|
||||
static boolean
|
||||
nvfx_state_viewport_validate(struct nvfx_context *nvfx)
|
||||
{
|
||||
struct pipe_viewport_state *vpt = &nvfx->viewport;
|
||||
struct nouveau_stateobj *so;
|
||||
|
||||
if (nvfx->state.hw[NVFX_STATE_VIEWPORT] &&
|
||||
!(nvfx->dirty & NVFX_NEW_VIEWPORT))
|
||||
return FALSE;
|
||||
|
||||
so = so_new(2, 9, 0);
|
||||
so_method(so, nvfx->screen->eng3d,
|
||||
NV34TCL_VIEWPORT_TRANSLATE_X, 8);
|
||||
|
|
@ -45,7 +46,7 @@ nvfx_state_viewport_validate(struct nvfx_context *nvfx)
|
|||
struct nvfx_state_entry nvfx_state_viewport = {
|
||||
.validate = nvfx_state_viewport_validate,
|
||||
.dirty = {
|
||||
.pipe = NVFX_NEW_VIEWPORT,
|
||||
.pipe = NVFX_NEW_VIEWPORT | NVFX_NEW_FB | NVFX_NEW_RAST,
|
||||
.hw = NVFX_STATE_VIEWPORT
|
||||
}
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue