diff options
author | Ilia Mirkin <imirkin@alum.mit.edu> | 2021-03-21 02:25:09 -0400 |
---|---|---|
committer | Dylan Baker <dylan.c.baker@intel.com> | 2021-03-23 10:28:33 -0700 |
commit | d18eb577a5b47d0f013ae3d1e09343c645a3a6ff (patch) | |
tree | efbff4fa156e52a1c1081dc4576141adf99b7070 /src | |
parent | 0174e19ff882a60c6883bd2eb8ec0c1034893ead (diff) |
gallium,st: add missing viewport swizzles
Viewports must be initialized with the appropriate swizzles (for
hardware that supports this feature).
Fixes: 90fcb3fef28 (st/mesa: add NV_viewport_swizzle support)
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9732>
(cherry picked from commit 3e68e7f90debb8999a62433084a096195f416a4b)
Diffstat (limited to 'src')
25 files changed, 114 insertions, 0 deletions
diff --git a/src/gallium/auxiliary/hud/hud_context.c b/src/gallium/auxiliary/hud/hud_context.c index bb614f76a95..d242b91a682 100644 --- a/src/gallium/auxiliary/hud/hud_context.c +++ b/src/gallium/auxiliary/hud/hud_context.c @@ -524,6 +524,10 @@ hud_draw_results(struct hud_context *hud, struct pipe_resource *tex) viewport.translate[0] = 0.5f * hud->fb_width; viewport.translate[1] = 0.5f * hud->fb_height; viewport.translate[2] = 0.0f; + viewport.swizzle_x = PIPE_VIEWPORT_SWIZZLE_POSITIVE_X; + viewport.swizzle_y = PIPE_VIEWPORT_SWIZZLE_POSITIVE_Y; + viewport.swizzle_z = PIPE_VIEWPORT_SWIZZLE_POSITIVE_Z; + viewport.swizzle_w = PIPE_VIEWPORT_SWIZZLE_POSITIVE_W; cso_set_framebuffer(cso, &fb); cso_set_sample_mask(cso, ~0); diff --git a/src/gallium/auxiliary/postprocess/pp_init.c b/src/gallium/auxiliary/postprocess/pp_init.c index 2c830e81bd7..4cd92826b13 100644 --- a/src/gallium/auxiliary/postprocess/pp_init.c +++ b/src/gallium/auxiliary/postprocess/pp_init.c @@ -324,6 +324,10 @@ pp_init_fbos(struct pp_queue_t *ppq, unsigned int w, p->viewport.scale[0] = p->viewport.translate[0] = (float) w / 2.0f; p->viewport.scale[1] = p->viewport.translate[1] = (float) h / 2.0f; + p->viewport.swizzle_x = PIPE_VIEWPORT_SWIZZLE_POSITIVE_X; + p->viewport.swizzle_y = PIPE_VIEWPORT_SWIZZLE_POSITIVE_Y; + p->viewport.swizzle_z = PIPE_VIEWPORT_SWIZZLE_POSITIVE_Z; + p->viewport.swizzle_w = PIPE_VIEWPORT_SWIZZLE_POSITIVE_W; ppq->fbos_init = true; diff --git a/src/gallium/auxiliary/util/u_blitter.c b/src/gallium/auxiliary/util/u_blitter.c index eefe69b8fe3..1bb9c68756f 100644 --- a/src/gallium/auxiliary/util/u_blitter.c +++ b/src/gallium/auxiliary/util/u_blitter.c @@ -827,6 +827,10 @@ static void blitter_set_rectangle(struct blitter_context_priv *ctx, viewport.translate[0] = 0.5f * ctx->dst_width; viewport.translate[1] = 0.5f * ctx->dst_height; viewport.translate[2] = depth; + viewport.swizzle_x = PIPE_VIEWPORT_SWIZZLE_POSITIVE_X; + viewport.swizzle_y = PIPE_VIEWPORT_SWIZZLE_POSITIVE_Y; + viewport.swizzle_z = PIPE_VIEWPORT_SWIZZLE_POSITIVE_Z; + viewport.swizzle_w = PIPE_VIEWPORT_SWIZZLE_POSITIVE_W; ctx->base.pipe->set_viewport_states(ctx->base.pipe, 0, 1, &viewport); } diff --git a/src/gallium/auxiliary/util/u_tests.c b/src/gallium/auxiliary/util/u_tests.c index 52f1ab4c738..e7b45fbdf29 100644 --- a/src/gallium/auxiliary/util/u_tests.c +++ b/src/gallium/auxiliary/util/u_tests.c @@ -126,6 +126,10 @@ util_set_max_viewport(struct cso_context *cso, struct pipe_resource *tex) viewport.translate[0] = 0.5f * tex->width0; viewport.translate[1] = 0.5f * tex->height0; viewport.translate[2] = 0.0f; + viewport.swizzle_x = PIPE_VIEWPORT_SWIZZLE_POSITIVE_X; + viewport.swizzle_y = PIPE_VIEWPORT_SWIZZLE_POSITIVE_Y; + viewport.swizzle_z = PIPE_VIEWPORT_SWIZZLE_POSITIVE_Z; + viewport.swizzle_w = PIPE_VIEWPORT_SWIZZLE_POSITIVE_W; cso_set_viewport(cso, &viewport); } diff --git a/src/gallium/auxiliary/vl/vl_bicubic_filter.c b/src/gallium/auxiliary/vl/vl_bicubic_filter.c index 5bcf65abf55..cb647a1c4bd 100644 --- a/src/gallium/auxiliary/vl/vl_bicubic_filter.c +++ b/src/gallium/auxiliary/vl/vl_bicubic_filter.c @@ -422,6 +422,10 @@ vl_bicubic_filter_render(struct vl_bicubic_filter *filter, viewport.scale[1] = dst->height; } viewport.scale[2] = 1; + viewport.swizzle_x = PIPE_VIEWPORT_SWIZZLE_POSITIVE_X; + viewport.swizzle_y = PIPE_VIEWPORT_SWIZZLE_POSITIVE_Y; + viewport.swizzle_z = PIPE_VIEWPORT_SWIZZLE_POSITIVE_Z; + viewport.swizzle_w = PIPE_VIEWPORT_SWIZZLE_POSITIVE_W; struct pipe_constant_buffer cb = {0}; float *ptr = NULL; diff --git a/src/gallium/auxiliary/vl/vl_compositor.c b/src/gallium/auxiliary/vl/vl_compositor.c index 9a378b6b386..a6ace353273 100644 --- a/src/gallium/auxiliary/vl/vl_compositor.c +++ b/src/gallium/auxiliary/vl/vl_compositor.c @@ -446,6 +446,10 @@ vl_compositor_clear_layers(struct vl_compositor_state *s) s->layers[i].cs = NULL; s->layers[i].viewport.scale[2] = 1; s->layers[i].viewport.translate[2] = 0; + s->layers[i].viewport.swizzle_x = PIPE_VIEWPORT_SWIZZLE_POSITIVE_X; + s->layers[i].viewport.swizzle_y = PIPE_VIEWPORT_SWIZZLE_POSITIVE_Y; + s->layers[i].viewport.swizzle_z = PIPE_VIEWPORT_SWIZZLE_POSITIVE_Z; + s->layers[i].viewport.swizzle_w = PIPE_VIEWPORT_SWIZZLE_POSITIVE_W; s->layers[i].rotate = VL_COMPOSITOR_ROTATE_0; for ( j = 0; j < 3; j++) diff --git a/src/gallium/auxiliary/vl/vl_deint_filter.c b/src/gallium/auxiliary/vl/vl_deint_filter.c index 1b8dad59a1f..db5fdc45034 100644 --- a/src/gallium/auxiliary/vl/vl_deint_filter.c +++ b/src/gallium/auxiliary/vl/vl_deint_filter.c @@ -472,6 +472,10 @@ vl_deint_filter_render(struct vl_deint_filter *filter, /* prepare viewport */ memset(&viewport, 0, sizeof(viewport)); viewport.scale[2] = 1; + viewport.swizzle_x = PIPE_VIEWPORT_SWIZZLE_POSITIVE_X; + viewport.swizzle_y = PIPE_VIEWPORT_SWIZZLE_POSITIVE_Y; + viewport.swizzle_z = PIPE_VIEWPORT_SWIZZLE_POSITIVE_Z; + viewport.swizzle_w = PIPE_VIEWPORT_SWIZZLE_POSITIVE_W; /* prepare framebuffer */ memset(&fb_state, 0, sizeof(fb_state)); diff --git a/src/gallium/auxiliary/vl/vl_idct.c b/src/gallium/auxiliary/vl/vl_idct.c index 1c35ef9e30f..590570116a8 100644 --- a/src/gallium/auxiliary/vl/vl_idct.c +++ b/src/gallium/auxiliary/vl/vl_idct.c @@ -609,6 +609,10 @@ init_source(struct vl_idct *idct, struct vl_idct_buffer *buffer) buffer->viewport_mismatch.scale[0] = tex->width0; buffer->viewport_mismatch.scale[1] = tex->height0; buffer->viewport_mismatch.scale[2] = 1; + buffer->viewport_mismatch.swizzle_x = PIPE_VIEWPORT_SWIZZLE_POSITIVE_X; + buffer->viewport_mismatch.swizzle_y = PIPE_VIEWPORT_SWIZZLE_POSITIVE_Y; + buffer->viewport_mismatch.swizzle_z = PIPE_VIEWPORT_SWIZZLE_POSITIVE_Z; + buffer->viewport_mismatch.swizzle_w = PIPE_VIEWPORT_SWIZZLE_POSITIVE_W; return true; } @@ -652,6 +656,10 @@ init_intermediate(struct vl_idct *idct, struct vl_idct_buffer *buffer) buffer->viewport.scale[0] = tex->width0; buffer->viewport.scale[1] = tex->height0; buffer->viewport.scale[2] = 1; + buffer->viewport.swizzle_x = PIPE_VIEWPORT_SWIZZLE_POSITIVE_X; + buffer->viewport.swizzle_y = PIPE_VIEWPORT_SWIZZLE_POSITIVE_Y; + buffer->viewport.swizzle_z = PIPE_VIEWPORT_SWIZZLE_POSITIVE_Z; + buffer->viewport.swizzle_w = PIPE_VIEWPORT_SWIZZLE_POSITIVE_W; return true; diff --git a/src/gallium/auxiliary/vl/vl_matrix_filter.c b/src/gallium/auxiliary/vl/vl_matrix_filter.c index 4a24c6a3f97..12aa660ce81 100644 --- a/src/gallium/auxiliary/vl/vl_matrix_filter.c +++ b/src/gallium/auxiliary/vl/vl_matrix_filter.c @@ -279,6 +279,10 @@ vl_matrix_filter_render(struct vl_matrix_filter *filter, viewport.scale[0] = dst->width; viewport.scale[1] = dst->height; viewport.scale[2] = 1; + viewport.swizzle_x = PIPE_VIEWPORT_SWIZZLE_POSITIVE_X; + viewport.swizzle_y = PIPE_VIEWPORT_SWIZZLE_POSITIVE_Y; + viewport.swizzle_z = PIPE_VIEWPORT_SWIZZLE_POSITIVE_Z; + viewport.swizzle_w = PIPE_VIEWPORT_SWIZZLE_POSITIVE_W; memset(&fb_state, 0, sizeof(fb_state)); fb_state.width = dst->width; diff --git a/src/gallium/auxiliary/vl/vl_mc.c b/src/gallium/auxiliary/vl/vl_mc.c index 414aff9623f..e2cc04a74e4 100644 --- a/src/gallium/auxiliary/vl/vl_mc.c +++ b/src/gallium/auxiliary/vl/vl_mc.c @@ -563,6 +563,10 @@ vl_mc_init_buffer(struct vl_mc *renderer, struct vl_mc_buffer *buffer) buffer->viewport.translate[0] = 0; buffer->viewport.translate[1] = 0; buffer->viewport.translate[2] = 0; + buffer->viewport.swizzle_x = PIPE_VIEWPORT_SWIZZLE_POSITIVE_X; + buffer->viewport.swizzle_y = PIPE_VIEWPORT_SWIZZLE_POSITIVE_Y; + buffer->viewport.swizzle_z = PIPE_VIEWPORT_SWIZZLE_POSITIVE_Z; + buffer->viewport.swizzle_w = PIPE_VIEWPORT_SWIZZLE_POSITIVE_W; buffer->fb_state.nr_cbufs = 1; buffer->fb_state.zsbuf = NULL; diff --git a/src/gallium/auxiliary/vl/vl_median_filter.c b/src/gallium/auxiliary/vl/vl_median_filter.c index b10237d1e56..f677d847dc0 100644 --- a/src/gallium/auxiliary/vl/vl_median_filter.c +++ b/src/gallium/auxiliary/vl/vl_median_filter.c @@ -383,6 +383,10 @@ vl_median_filter_render(struct vl_median_filter *filter, viewport.scale[0] = dst->width; viewport.scale[1] = dst->height; viewport.scale[2] = 1; + viewport.swizzle_x = PIPE_VIEWPORT_SWIZZLE_POSITIVE_X; + viewport.swizzle_y = PIPE_VIEWPORT_SWIZZLE_POSITIVE_Y; + viewport.swizzle_z = PIPE_VIEWPORT_SWIZZLE_POSITIVE_Z; + viewport.swizzle_w = PIPE_VIEWPORT_SWIZZLE_POSITIVE_W; memset(&fb_state, 0, sizeof(fb_state)); fb_state.width = dst->width; diff --git a/src/gallium/auxiliary/vl/vl_zscan.c b/src/gallium/auxiliary/vl/vl_zscan.c index 82f7a5eab23..ac0c3bee1f8 100644 --- a/src/gallium/auxiliary/vl/vl_zscan.c +++ b/src/gallium/auxiliary/vl/vl_zscan.c @@ -500,6 +500,10 @@ vl_zscan_init_buffer(struct vl_zscan *zscan, struct vl_zscan_buffer *buffer, buffer->viewport.translate[0] = 0; buffer->viewport.translate[1] = 0; buffer->viewport.translate[2] = 0; + buffer->viewport.swizzle_x = PIPE_VIEWPORT_SWIZZLE_POSITIVE_X; + buffer->viewport.swizzle_y = PIPE_VIEWPORT_SWIZZLE_POSITIVE_Y; + buffer->viewport.swizzle_z = PIPE_VIEWPORT_SWIZZLE_POSITIVE_Z; + buffer->viewport.swizzle_w = PIPE_VIEWPORT_SWIZZLE_POSITIVE_W; buffer->fb_state.width = dst->width; buffer->fb_state.height = dst->height; diff --git a/src/gallium/frontends/nine/nine_state.c b/src/gallium/frontends/nine/nine_state.c index e99c2a082d7..20ac35efef7 100644 --- a/src/gallium/frontends/nine/nine_state.c +++ b/src/gallium/frontends/nine/nine_state.c @@ -769,6 +769,10 @@ update_viewport(struct NineDevice9 *device) pvport.translate[0] = (float)vport->Width * 0.5f + (float)vport->X; pvport.translate[1] = (float)vport->Height * 0.5f + (float)vport->Y; pvport.translate[2] = vport->MinZ; + pvport.swizzle_x = PIPE_VIEWPORT_SWIZZLE_POSITIVE_X; + pvport.swizzle_y = PIPE_VIEWPORT_SWIZZLE_POSITIVE_Y; + pvport.swizzle_z = PIPE_VIEWPORT_SWIZZLE_POSITIVE_Z; + pvport.swizzle_w = PIPE_VIEWPORT_SWIZZLE_POSITIVE_W; /* We found R600 and SI cards have some imprecision * on the barycentric coordinates used for interpolation. diff --git a/src/gallium/frontends/xa/xa_renderer.c b/src/gallium/frontends/xa/xa_renderer.c index 89548ad7019..ef5af738054 100644 --- a/src/gallium/frontends/xa/xa_renderer.c +++ b/src/gallium/frontends/xa/xa_renderer.c @@ -345,6 +345,10 @@ renderer_bind_destination(struct xa_context *r, viewport.translate[0] = width / 2.f; viewport.translate[1] = height / 2.f; viewport.translate[2] = 0.0; + viewport.swizzle_x = PIPE_VIEWPORT_SWIZZLE_POSITIVE_X; + viewport.swizzle_y = PIPE_VIEWPORT_SWIZZLE_POSITIVE_Y; + viewport.swizzle_z = PIPE_VIEWPORT_SWIZZLE_POSITIVE_Z; + viewport.swizzle_w = PIPE_VIEWPORT_SWIZZLE_POSITIVE_W; /* Constant buffer set up to match viewport dimensions: */ diff --git a/src/gallium/tests/graw/fs-test.c b/src/gallium/tests/graw/fs-test.c index f0c93b18ada..060c126602c 100644 --- a/src/gallium/tests/graw/fs-test.c +++ b/src/gallium/tests/graw/fs-test.c @@ -148,6 +148,11 @@ static void set_viewport( float x, float y, vp.translate[1] = half_height + y; vp.translate[2] = half_depth + z; + vp.swizzle_x = PIPE_VIEWPORT_SWIZZLE_POSITIVE_X; + vp.swizzle_y = PIPE_VIEWPORT_SWIZZLE_POSITIVE_Y; + vp.swizzle_z = PIPE_VIEWPORT_SWIZZLE_POSITIVE_Z; + vp.swizzle_w = PIPE_VIEWPORT_SWIZZLE_POSITIVE_W; + ctx->set_viewport_states( ctx, 0, 1, &vp ); } diff --git a/src/gallium/tests/graw/graw_util.h b/src/gallium/tests/graw/graw_util.h index b8c79361c23..ca813b6b87c 100644 --- a/src/gallium/tests/graw/graw_util.h +++ b/src/gallium/tests/graw/graw_util.h @@ -201,6 +201,11 @@ graw_util_viewport(struct graw_info *info, vp.translate[1] = half_height + y; vp.translate[2] = half_depth + z; + vp.swizzle_x = PIPE_VIEWPORT_SWIZZLE_POSITIVE_X; + vp.swizzle_y = PIPE_VIEWPORT_SWIZZLE_POSITIVE_Y; + vp.swizzle_z = PIPE_VIEWPORT_SWIZZLE_POSITIVE_Z; + vp.swizzle_w = PIPE_VIEWPORT_SWIZZLE_POSITIVE_W; + info->ctx->set_viewport_states(info->ctx, 0, 1, &vp); } diff --git a/src/gallium/tests/graw/gs-test.c b/src/gallium/tests/graw/gs-test.c index bcbe8ad95af..32cb1b4bd20 100644 --- a/src/gallium/tests/graw/gs-test.c +++ b/src/gallium/tests/graw/gs-test.c @@ -206,6 +206,11 @@ static void set_viewport( float x, float y, vp.translate[1] = half_height + y; vp.translate[2] = half_depth + z; + vp.swizzle_x = PIPE_VIEWPORT_SWIZZLE_POSITIVE_X; + vp.swizzle_y = PIPE_VIEWPORT_SWIZZLE_POSITIVE_Y; + vp.swizzle_z = PIPE_VIEWPORT_SWIZZLE_POSITIVE_Z; + vp.swizzle_w = PIPE_VIEWPORT_SWIZZLE_POSITIVE_W; + ctx->set_viewport_states( ctx, 0, 1, &vp ); } diff --git a/src/gallium/tests/graw/quad-sample.c b/src/gallium/tests/graw/quad-sample.c index 65d2917fbae..4b3dee7ab09 100644 --- a/src/gallium/tests/graw/quad-sample.c +++ b/src/gallium/tests/graw/quad-sample.c @@ -76,6 +76,11 @@ static void set_viewport( float x, float y, vp.translate[1] = half_height + y; vp.translate[2] = half_depth + z; + vp.swizzle_x = PIPE_VIEWPORT_SWIZZLE_POSITIVE_X; + vp.swizzle_y = PIPE_VIEWPORT_SWIZZLE_POSITIVE_Y; + vp.swizzle_z = PIPE_VIEWPORT_SWIZZLE_POSITIVE_Z; + vp.swizzle_w = PIPE_VIEWPORT_SWIZZLE_POSITIVE_W; + ctx->set_viewport_states( ctx, 0, 1, &vp ); } diff --git a/src/gallium/tests/graw/shader-leak.c b/src/gallium/tests/graw/shader-leak.c index ba2e44af8b8..f5a04518c73 100644 --- a/src/gallium/tests/graw/shader-leak.c +++ b/src/gallium/tests/graw/shader-leak.c @@ -66,6 +66,11 @@ static void set_viewport( float x, float y, vp.translate[1] = half_height + y; vp.translate[2] = half_depth + z; + vp.swizzle_x = PIPE_VIEWPORT_SWIZZLE_POSITIVE_X; + vp.swizzle_y = PIPE_VIEWPORT_SWIZZLE_POSITIVE_Y; + vp.swizzle_z = PIPE_VIEWPORT_SWIZZLE_POSITIVE_Z; + vp.swizzle_w = PIPE_VIEWPORT_SWIZZLE_POSITIVE_W; + ctx->set_viewport_states( ctx, 0, 1, &vp ); } diff --git a/src/gallium/tests/graw/tri-gs.c b/src/gallium/tests/graw/tri-gs.c index b0cdb33e52b..77e4e66accc 100644 --- a/src/gallium/tests/graw/tri-gs.c +++ b/src/gallium/tests/graw/tri-gs.c @@ -67,6 +67,11 @@ static void set_viewport( float x, float y, vp.translate[1] = half_height + y; vp.translate[2] = half_depth + z; + vp.swizzle_x = PIPE_VIEWPORT_SWIZZLE_POSITIVE_X; + vp.swizzle_y = PIPE_VIEWPORT_SWIZZLE_POSITIVE_Y; + vp.swizzle_z = PIPE_VIEWPORT_SWIZZLE_POSITIVE_Z; + vp.swizzle_w = PIPE_VIEWPORT_SWIZZLE_POSITIVE_W; + ctx->set_viewport_states( ctx, 0, 1, &vp ); } diff --git a/src/gallium/tests/graw/tri-instanced.c b/src/gallium/tests/graw/tri-instanced.c index a5cc3dc8106..591d8c7b688 100644 --- a/src/gallium/tests/graw/tri-instanced.c +++ b/src/gallium/tests/graw/tri-instanced.c @@ -96,6 +96,11 @@ static void set_viewport( float x, float y, vp.translate[1] = half_height + y; vp.translate[2] = half_depth + z; + vp.swizzle_x = PIPE_VIEWPORT_SWIZZLE_POSITIVE_X; + vp.swizzle_y = PIPE_VIEWPORT_SWIZZLE_POSITIVE_Y; + vp.swizzle_z = PIPE_VIEWPORT_SWIZZLE_POSITIVE_Z; + vp.swizzle_w = PIPE_VIEWPORT_SWIZZLE_POSITIVE_W; + ctx->set_viewport_states( ctx, 0, 1, &vp ); } diff --git a/src/gallium/tests/graw/vs-test.c b/src/gallium/tests/graw/vs-test.c index fb096354935..06dbf30d918 100644 --- a/src/gallium/tests/graw/vs-test.c +++ b/src/gallium/tests/graw/vs-test.c @@ -128,6 +128,11 @@ static void set_viewport( float x, float y, vp.translate[1] = half_height + y; vp.translate[2] = half_depth + z; + vp.swizzle_x = PIPE_VIEWPORT_SWIZZLE_POSITIVE_X; + vp.swizzle_y = PIPE_VIEWPORT_SWIZZLE_POSITIVE_Y; + vp.swizzle_z = PIPE_VIEWPORT_SWIZZLE_POSITIVE_Z; + vp.swizzle_w = PIPE_VIEWPORT_SWIZZLE_POSITIVE_W; + ctx->set_viewport_states( ctx, 0, 1, &vp ); } diff --git a/src/gallium/tests/trivial/quad-tex.c b/src/gallium/tests/trivial/quad-tex.c index fe345a94ae7..a0822fac888 100644 --- a/src/gallium/tests/trivial/quad-tex.c +++ b/src/gallium/tests/trivial/quad-tex.c @@ -250,6 +250,11 @@ static void init_prog(struct program *p) p->viewport.translate[0] = half_width + x; p->viewport.translate[1] = (half_height + y) * scale + bias; p->viewport.translate[2] = half_depth + z; + + p->viewport.swizzle_x = PIPE_VIEWPORT_SWIZZLE_POSITIVE_X; + p->viewport.swizzle_y = PIPE_VIEWPORT_SWIZZLE_POSITIVE_Y; + p->viewport.swizzle_z = PIPE_VIEWPORT_SWIZZLE_POSITIVE_Z; + p->viewport.swizzle_w = PIPE_VIEWPORT_SWIZZLE_POSITIVE_W; } /* vertex elements state */ diff --git a/src/gallium/tests/trivial/tri.c b/src/gallium/tests/trivial/tri.c index 254a10ac863..0bc09a983a2 100644 --- a/src/gallium/tests/trivial/tri.c +++ b/src/gallium/tests/trivial/tri.c @@ -193,6 +193,11 @@ static void init_prog(struct program *p) p->viewport.translate[0] = half_width + x; p->viewport.translate[1] = (half_height + y) * scale + bias; p->viewport.translate[2] = half_depth + z; + + p->viewport.swizzle_x = PIPE_VIEWPORT_SWIZZLE_POSITIVE_X; + p->viewport.swizzle_y = PIPE_VIEWPORT_SWIZZLE_POSITIVE_Y; + p->viewport.swizzle_z = PIPE_VIEWPORT_SWIZZLE_POSITIVE_Z; + p->viewport.swizzle_w = PIPE_VIEWPORT_SWIZZLE_POSITIVE_W; } /* vertex elements state */ diff --git a/src/mesa/state_tracker/st_cb_drawtex.c b/src/mesa/state_tracker/st_cb_drawtex.c index 2ecdc4968d0..3d2ca03420f 100644 --- a/src/mesa/state_tracker/st_cb_drawtex.c +++ b/src/mesa/state_tracker/st_cb_drawtex.c @@ -331,6 +331,10 @@ st_DrawTex(struct gl_context *ctx, GLfloat x, GLfloat y, GLfloat z, vp.translate[0] = 0.5f * width; vp.translate[1] = 0.5f * height; vp.translate[2] = 0.0f; + vp.swizzle_x = PIPE_VIEWPORT_SWIZZLE_POSITIVE_X; + vp.swizzle_y = PIPE_VIEWPORT_SWIZZLE_POSITIVE_Y; + vp.swizzle_z = PIPE_VIEWPORT_SWIZZLE_POSITIVE_Z; + vp.swizzle_w = PIPE_VIEWPORT_SWIZZLE_POSITIVE_W; cso_set_viewport(cso, &vp); } |