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)