mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-04 22:10:11 +01:00
nvc0: restore viewport after blit
Based on calim's original fix in the nine branch. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@canonical.com> Cc: "9.2 and 9.1" <mesa-stable@lists.freedesktop.org>
This commit is contained in:
parent
3e81b8eedd
commit
ad4dc77231
3 changed files with 7 additions and 4 deletions
|
|
@ -198,6 +198,7 @@ struct nvc0_context {
|
|||
struct pipe_surface *surfaces[2][NVC0_MAX_SURFACE_SLOTS];
|
||||
uint16_t surfaces_dirty[2];
|
||||
uint16_t surfaces_valid[2];
|
||||
uint32_t vport_int[2];
|
||||
|
||||
struct util_dynarray global_residents;
|
||||
|
||||
|
|
|
|||
|
|
@ -245,9 +245,11 @@ nvc0_validate_viewport(struct nvc0_context *nvc0)
|
|||
zmin = vp->translate[2] - fabsf(vp->scale[2]);
|
||||
zmax = vp->translate[2] + fabsf(vp->scale[2]);
|
||||
|
||||
nvc0->vport_int[0] = (w << 16) | x;
|
||||
nvc0->vport_int[1] = (h << 16) | y;
|
||||
BEGIN_NVC0(push, NVC0_3D(VIEWPORT_HORIZ(0)), 2);
|
||||
PUSH_DATA (push, (w << 16) | x);
|
||||
PUSH_DATA (push, (h << 16) | y);
|
||||
PUSH_DATA (push, nvc0->vport_int[0]);
|
||||
PUSH_DATA (push, nvc0->vport_int[1]);
|
||||
BEGIN_NVC0(push, NVC0_3D(DEPTH_RANGE_NEAR(0)), 2);
|
||||
PUSH_DATAf(push, zmin);
|
||||
PUSH_DATAf(push, zmax);
|
||||
|
|
|
|||
|
|
@ -948,8 +948,8 @@ nvc0_blit_3d(struct nvc0_context *nvc0, const struct pipe_blit_info *info)
|
|||
/* restore viewport */
|
||||
|
||||
BEGIN_NVC0(push, NVC0_3D(VIEWPORT_HORIZ(0)), 2);
|
||||
PUSH_DATA (push, nvc0->framebuffer.width << 16);
|
||||
PUSH_DATA (push, nvc0->framebuffer.height << 16);
|
||||
PUSH_DATA (push, nvc0->vport_int[0]);
|
||||
PUSH_DATA (push, nvc0->vport_int[1]);
|
||||
IMMED_NVC0(push, NVC0_3D(VIEWPORT_TRANSFORM_EN), 1);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue