Displaying 6 results from an estimated 6 matches for "pipe_clear_color".
2014 Feb 13
2
[PATCH] nv50: make sure to clear _all_ layers of all attachments
...xtures, they can't be arrays. The
+ * above nv50_state_validate call will have written to rt_array_mode. */
+ if (!(nv50->rt_array_mode & NV50_3D_RT_ARRAY_MODE_MODE_3D)) {
+ BEGIN_NV04(push, NV50_3D(RT_ARRAY_MODE), 1);
+ PUSH_DATA (push, 512);
+ }
+
if (buffers & PIPE_CLEAR_COLOR && fb->nr_cbufs) {
BEGIN_NV04(push, NV50_3D(CLEAR_COLOR(0)), 4);
PUSH_DATAf(push, color->f[0]);
@@ -459,6 +470,10 @@ nv50_clear(struct pipe_context *pipe, unsigned buffers,
(j << NV50_3D_CLEAR_BUFFERS_LAYER__SHIFT));
}
}
+
+ /* res...
2009 Apr 10
0
[PATCH/Gallium] nv50_clear again (might work better)
...L_BITS 0x03
+#define NV50TCL_CLEAR_COLOR_BITS(i) (0x3c + (0x40 * (i)))
+
void
nv50_clear(struct pipe_context *pipe, unsigned buffers,
const float *rgba, double depth, unsigned stencil)
@@ -40,26 +47,32 @@ nv50_clear(struct pipe_context *pipe, unsigned buffers,
return;
if (buffers & PIPE_CLEAR_COLOR) {
- BEGIN_RING(chan, tesla, NV50TCL_CLEAR_COLOR(0), 4*fb->nr_cbufs);
- for (i = 0; i < fb->nr_cbufs; i++) {
- OUT_RING (chan, fui(rgba[0]));
- OUT_RING (chan, fui(rgba[1]));
- OUT_RING (chan, fui(rgba[2]));
- OUT_RING (chan, fui(rgba[3]));
- }
- mode |= 0x3c;
+ assert(fb-...
2009 Apr 08
0
[PATCH/Gallium] nv50: update nv50_clear to new interface
...nge this to if/return */
+ assert(buffers && (s_fb.nr_cbufs > 0 || s_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.n...
2015 May 24
2
[PATCH 1/2] nv30: avoid doing extra work on clear and hitting unexpected states
...pipe, unsigned buffers,
struct pipe_framebuffer_state *fb = &nv30->framebuffer;
uint32_t colr = 0, zeta = 0, mode = 0;
- if (!nv30_state_validate(nv30, TRUE))
+ if (!nv30_state_validate(nv30, NV30_NEW_FRAMEBUFFER | NV30_NEW_SCISSOR, TRUE))
return;
if (buffers & PIPE_CLEAR_COLOR && fb->nr_cbufs) {
diff --git a/src/gallium/drivers/nouveau/nv30/nv30_context.h b/src/gallium/drivers/nouveau/nv30/nv30_context.h
index 7b32aae..592cdbe 100644
--- a/src/gallium/drivers/nouveau/nv30/nv30_context.h
+++ b/src/gallium/drivers/nouveau/nv30/nv30_context.h
@@ -204,7 +204,7 @@...
2014 Jan 13
20
[PATCH 00/19] nv50: add sampler2DMS/GP support to get OpenGL 3.2
OK, so there's a bunch of stuff in here. The geometry stuff is based on the
work started by Bryan Cain and Christoph Bumiller.
Patches 01-12: Add support for geometry shaders and fix related issues
Patches 13-14: Make it possible for fb clears to operate on texture attachments
with an explicit layer set (as is allowed in gl 3.2).
Patches 15-17: Make ARB_texture_multisample work
2016 Jun 05
0
[RFC PATCH] nouveau: add locking
...eed NEW_BLEND, COLOR_MASK doesn't affect CLEAR_BUFFERS */
- if (!nvc0_state_validate_3d(nvc0, NVC0_NEW_3D_FRAMEBUFFER))
+ if (!nvc0_state_validate_3d(nvc0, NVC0_NEW_3D_FRAMEBUFFER)) {
+ pipe_mutex_unlock(nvc0->screen->base.push_mutex);
return;
+ }
if (buffers & PIPE_CLEAR_COLOR && fb->nr_cbufs) {
BEGIN_NVC0(push, NVC0_3D(CLEAR_COLOR(0)), 4);
@@ -755,6 +784,8 @@ nvc0_clear(struct pipe_context *pipe, unsigned buffers,
(j << NVC0_3D_CLEAR_BUFFERS_LAYER__SHIFT));
}
}
+
+ pipe_mutex_unlock(nvc0->screen->base.push_...