Displaying 3 results from an estimated 3 matches for "bypass_vs_clip_and_viewport".
2009 Mar 31
1
(patch) Gallium NV50: honor bypass_vs_clip_and_viewport
...uriosity) with a small OpenGL
program that renders 2 rotating triangles partially occluding each other
I noticed that depth buffer clearing by rendering a quad
(st_cb_clear.c/clear_with_quad) didn't work properly.
I found this was because the rasterizer state that is set by clear_with_quad
has bypass_vs_clip_and_viewport = 1 which would only be commited if
the viewport was marked dirty, which it isn't when only binding a new
rasterizer state.
I let the depth buffer clear before drawing anything else and
then the bypass flag stuck (first viewport validate with bypass enabled and
no further viewport updates) and...
2009 Jul 28
0
[PATCH 2/8] nv50: fix viewport transform
...state_validate.c
+++ b/src/gallium/drivers/nv50/nv50_state_validate.c
@@ -258,6 +258,7 @@ scissor_uptodate:
if (nv50->dirty & (NV50_NEW_VIEWPORT | NV50_NEW_RASTERIZER)) {
unsigned bypass;
+ float y_translate = (float)nv50->framebuffer.height;
if (!nv50->rasterizer->pipe.bypass_vs_clip_and_viewport)
bypass = 0;
@@ -271,25 +272,33 @@ scissor_uptodate:
nv50->state.viewport_bypass = bypass;
so = so_new(12, 0);
+ so_method(so, tesla, NV50TCL_VIEW_VOLUME_CLIP_CTRL, 1);
if (!bypass) {
- so_method(so, tesla, NV50TCL_VIEWPORT_UNK1(0), 3);
+ so_data(so, 0x0000);
+ y_translate...
2009 Jul 12
0
[PATCH 2/3] nv50: fix viewport transform
...ture *pt = fb->cbufs[i]->texture;
struct nouveau_bo *bo = nv50_miptree(pt)->bo;
@@ -263,6 +268,7 @@ scissor_uptodate:
if (nv50->dirty & (NV50_NEW_VIEWPORT | NV50_NEW_RASTERIZER)) {
unsigned bypass;
+ struct pipe_viewport_state viewp;
if (!nv50->rasterizer->pipe.bypass_vs_clip_and_viewport)
bypass = 0;
@@ -277,25 +283,42 @@ scissor_uptodate:
so = so_new(12, 0);
if (!bypass) {
- so_method(so, tesla, NV50TCL_VIEWPORT_UNK1(0), 3);
- so_data (so, fui(nv50->viewport.translate[0]));
- so_data (so, fui(nv50->viewport.translate[1]));
- so_data (so, fui(nv50->v...