Displaying 5 results from an estimated 5 matches for "clear_with_quad".
2009 Mar 31
1
(patch) Gallium NV50: honor bypass_vs_clip_and_viewport
When trying out the Gallium3D NV50 driver (curiosity) 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 befo...
2009 Apr 08
0
[PATCH/Gallium] nv50: update nv50_clear to new interface
...fb.zsbuf != NULL));
+
nv50->dirty = 0;
+ fb.nr_cbufs = 0;
- if (ps->format == PIPE_FORMAT_Z24S8_UNORM ||
- ps->format == PIPE_FORMAT_Z16_UNORM) {
- fb.nr_cbufs = 0;
- fb.zsbuf = ps;
+ if (buffers & PIPE_CLEAR_COLOR) {
+ /* Should we clear all color buffers (nv40 doesn't), clear_with_quad
+ * from the mesa state tracker seems to ? */
+ for (unsigned i = 0; i < s_fb.nr_cbufs; ++i) {
+ unsigned color;
+ ps = s_fb.cbufs[i];
+
+ if (ps->format == PIPE_FORMAT_A8R8G8B8_UNORM) {
+ fb.cbufs[fb.nr_cbufs++] = ps;
+ } else {
+ util_pack_color(rgba, ps->format, &co...
2009 May 11
1
[PATCH] nv50/gallium: small fix for nv50_transfer_rect_m2mf (sy <-> dy)
..._state_validate (but the translation - inconsistenly - remains unchanged).
Now one could do
so_data (so, fui(-(nv50->viewport.translate[1] - nv50->framebuffer.height));
as well, which would make the viewport transformation correct, but the ST still
outputs the wrong vertex coordinates for clear_with_quad.
To fix both things, one could just let st_fb_orientation in st_context.h return
Y_0_BOTTOM, but then glCopyTexSubImage2D (calling the appropriate function in
st_cb_texture.c) flips the image and copies from the wrong offset, since offset
0 in memory is, well, top, as opposed to bottom like it see...
2009 Jul 12
0
[PATCH 2/3] nv50: fix viewport transform
We need to invert the viewport translate/scale parameters
when the state tracker thinks we have Y_0_TOP.
If these cases, we have do to bypass mode by setting an
identity viewport transform for x, z and inversion for y,
or p.e. clear_with_quad won't work correctly.
Clipping for xy in NDC space needs to be disabled then.
---
src/gallium/drivers/nv50/nv50_context.h | 1 +
src/gallium/drivers/nv50/nv50_state_validate.c | 55 +++++++++++++++++-------
2 files changed, 40 insertions(+), 16 deletions(-)
diff --git a/src/galliu...
2018 Mar 07
3
[Bug 105382] New: segfault in nouveau_scratch_data when using 2 nouveau cards
...e8c340, x0=x0 at entry=-1,
y0=y0 at entry=-1, x1=x1 at entry=0.00885415077, y1=y1 at entry=1, z=1, s0=s0 at entry=0,
t0=t0 at entry=0, s1=s1 at entry=0, t1=t1 at entry=0, color=color at entry=0x1dc781c,
num_instances=num_instances at entry=1) at state_tracker/st_draw.c:489
#9 0x00007f5be03b2087 in clear_with_quad (clear_buffers=<optimized out>,
ctx=0x1dc5d60) at state_tracker/st_cb_clear.c:297
#10 0x00007f5be03b2087 in st_Clear (ctx=0x1dc5d60, mask=16) at
state_tracker/st_cb_clear.c:475
#11 0x00007f5bf0310811 in _cogl_framebuffer_gl_clear (framebuffer=0x1ee3000,
buffers=<optimized out>, red=<...