commit ce80a7e

Michael Forney  ·  2014-01-31 12:15:41 +0000 UTC
parent 209df22
nouveau: Set operation once in 2d_initialize

Also, use SRCCOPY_AND instead of SRCCOPY in case the alpha bit isn't
set.
1 files changed,  +3, -3
+3, -3
 1@@ -189,11 +189,13 @@ static bool nvc0_2d_initialize(struct nouveau_renderer * renderer)
 2     if (ret != 0)
 3         goto error0;
 4 
 5-    if (!ensure_space(renderer->pushbuf, 4))
 6+    if (!ensure_space(renderer->pushbuf, 5))
 7         goto error1;
 8 
 9     nvc0_2d(renderer->pushbuf, NV01_SUBCHAN_OBJECT, 1,
10             renderer->nvc0_2d->handle);
11+    nvc0_2d_inline(renderer->pushbuf, NV50_2D_OPERATION,
12+                   NV50_2D_OPERATION_SRCCOPY_AND);
13     nvc0_2d_inline(renderer->pushbuf, NV50_2D_UNK0884, 0x3f);
14     nvc0_2d_inline(renderer->pushbuf, NV50_2D_UNK0888, 1);
15 
16@@ -433,7 +435,6 @@ void renderer_fill_rectangle(struct wld_renderer * base, uint32_t color,
17     nouveau_bufctx_reset(renderer->bufctx, 0);
18     nvc0_2d_use_buffer(renderer, renderer->target,
19                        NV50_2D_DST_FORMAT, format);
20-    nvc0_2d(renderer->pushbuf, NV50_2D_OPERATION, 1, NV50_2D_OPERATION_SRCCOPY);
21     nvc0_2d(renderer->pushbuf, NV50_2D_DRAW_SHAPE, 3,
22             NV50_2D_DRAW_SHAPE_RECTANGLES, format, color);
23     nouveau_pushbuf_bufctx(renderer->pushbuf, renderer->bufctx);
24@@ -469,7 +470,6 @@ void renderer_copy_rectangle(struct wld_renderer * base,
25     nvc0_2d_use_buffer(renderer, buffer, NV50_2D_SRC_FORMAT, src_format);
26     nvc0_2d_use_buffer(renderer, renderer->target,
27                        NV50_2D_DST_FORMAT, dst_format);
28-    nvc0_2d(renderer->pushbuf, NV50_2D_OPERATION, 1, NV50_2D_OPERATION_SRCCOPY);
29     nouveau_pushbuf_bufctx(renderer->pushbuf, renderer->bufctx);
30 
31     if (nouveau_pushbuf_validate(renderer->pushbuf) != 0)