nv30, nv40: unify nv[34]0_state_stipple.c
authorLuca Barbieri <luca@luca-barbieri.com>
Sat, 20 Feb 2010 18:22:57 +0000 (19:22 +0100)
committerYounes Manton <younes.m@gmail.com>
Mon, 15 Mar 2010 04:03:02 +0000 (00:03 -0400)
The files are identical, except for the fact that the nv40 version
forgets to unreference the stateobj.

Unified to the correct nv30 version.

src/gallium/drivers/nv30/Makefile
src/gallium/drivers/nv30/nv30_context.h
src/gallium/drivers/nv30/nv30_state_stipple.c [deleted file]
src/gallium/drivers/nv40/Makefile
src/gallium/drivers/nv40/nv40_context.h
src/gallium/drivers/nv40/nv40_state_stipple.c [deleted file]
src/gallium/drivers/nvfx/Makefile
src/gallium/drivers/nvfx/nvfx_context.h
src/gallium/drivers/nvfx/nvfx_state_emit.c
src/gallium/drivers/nvfx/nvfx_state_stipple.c [new file with mode: 0644]

index 8f198ff2b709170e277e1eff06517dc6399847bc..5541a366181b50e66df4f16a0d4c9012575645c4 100644 (file)
@@ -13,7 +13,6 @@ C_SOURCES = \
        nv30_screen.c \
        nv30_state.c \
        nv30_state_fb.c \
-       nv30_state_stipple.c \
        nv30_state_viewport.c \
        nv30_surface.c \
        nv30_vbo.c \
index 2ee12ef5d8f86980eb62737a9b15ea2129cbcc3b..1c2572aa86d34d5a54b6463f4aeefaa3b446c872 100644 (file)
@@ -24,7 +24,6 @@ extern void nv30_fragprog_destroy(struct nvfx_context *,
 extern void nv30_fragtex_bind(struct nvfx_context *);
 
 /* nv30_state.c and friends */
-extern struct nvfx_state_entry nv30_state_stipple;
 extern struct nvfx_state_entry nv30_state_fragprog;
 extern struct nvfx_state_entry nv30_state_vertprog;
 extern struct nvfx_state_entry nv30_state_viewport;
diff --git a/src/gallium/drivers/nv30/nv30_state_stipple.c b/src/gallium/drivers/nv30/nv30_state_stipple.c
deleted file mode 100644 (file)
index eceb0c5..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-#include "nv30_context.h"
-
-static boolean
-nv30_state_stipple_validate(struct nvfx_context *nvfx)
-{
-       struct pipe_rasterizer_state *rast = &nvfx->rasterizer->pipe;
-       struct nouveau_grobj *eng3d = nvfx->screen->eng3d;
-       struct nouveau_stateobj *so;
-
-       if (nvfx->state.hw[NVFX_STATE_STIPPLE] &&
-          (rast->poly_stipple_enable == 0 && nvfx->state.stipple_enabled == 0))
-               return FALSE;
-
-       if (rast->poly_stipple_enable) {
-               unsigned i;
-
-               so = so_new(2, 33, 0);
-               so_method(so, eng3d, NV34TCL_POLYGON_STIPPLE_ENABLE, 1);
-               so_data  (so, 1);
-               so_method(so, eng3d, NV34TCL_POLYGON_STIPPLE_PATTERN(0), 32);
-               for (i = 0; i < 32; i++)
-                       so_data(so, nvfx->stipple[i]);
-       } else {
-               so = so_new(1, 1, 0);
-               so_method(so, eng3d, NV34TCL_POLYGON_STIPPLE_ENABLE, 1);
-               so_data  (so, 0);
-       }
-
-       so_ref(so, &nvfx->state.hw[NVFX_STATE_STIPPLE]);
-       so_ref(NULL, &so);
-       return TRUE;
-}
-
-struct nvfx_state_entry nv30_state_stipple = {
-       .validate = nv30_state_stipple_validate,
-       .dirty = {
-               .pipe = NVFX_NEW_STIPPLE | NVFX_NEW_RAST,
-               .hw = NVFX_STATE_STIPPLE,
-       }
-};
index 1cad9409ed4a6dfc0acbb21249c008ec87dbe59a..a101cfc80c783e68e0c4e71e727dec4f7eb4430b 100644 (file)
@@ -13,7 +13,6 @@ C_SOURCES = \
        nv40_screen.c \
        nv40_state.c \
        nv40_state_fb.c \
-       nv40_state_stipple.c \
        nv40_state_viewport.c \
        nv40_surface.c \
        nv40_vbo.c \
index 3dcbbae30b334137cb7ad4581816575f84ea319e..127502dd5fd45541a1f6a08b9b979963610b47a1 100644 (file)
@@ -28,7 +28,6 @@ extern void nv40_fragprog_destroy(struct nvfx_context *,
 extern void nv40_fragtex_bind(struct nvfx_context *);
 
 /* nv40_state.c and friends */
-extern struct nvfx_state_entry nv40_state_stipple;
 extern struct nvfx_state_entry nv40_state_fragprog;
 extern struct nvfx_state_entry nv40_state_vertprog;
 extern struct nvfx_state_entry nv40_state_viewport;
diff --git a/src/gallium/drivers/nv40/nv40_state_stipple.c b/src/gallium/drivers/nv40/nv40_state_stipple.c
deleted file mode 100644 (file)
index e537e08..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-#include "nv40_context.h"
-
-static boolean
-nv40_state_stipple_validate(struct nvfx_context *nvfx)
-{
-       struct pipe_rasterizer_state *rast = &nvfx->rasterizer->pipe;
-       struct nouveau_grobj *eng3d = nvfx->screen->eng3d;
-       struct nouveau_stateobj *so;
-
-       if (nvfx->state.hw[NVFX_STATE_STIPPLE] &&
-          (rast->poly_stipple_enable == 0 && nvfx->state.stipple_enabled == 0))
-               return FALSE;
-
-       if (rast->poly_stipple_enable) {
-               unsigned i;
-
-               so = so_new(2, 33, 0);
-               so_method(so, eng3d, NV34TCL_POLYGON_STIPPLE_ENABLE, 1);
-               so_data  (so, 1);
-               so_method(so, eng3d, NV34TCL_POLYGON_STIPPLE_PATTERN(0), 32);
-               for (i = 0; i < 32; i++)
-                       so_data(so, nvfx->stipple[i]);
-       } else {
-               so = so_new(1, 1, 0);
-               so_method(so, eng3d, NV34TCL_POLYGON_STIPPLE_ENABLE, 1);
-               so_data  (so, 0);
-       }
-
-       so_ref(so, &nvfx->state.hw[NVFX_STATE_STIPPLE]);
-       return TRUE;
-}
-
-struct nvfx_state_entry nv40_state_stipple = {
-       .validate = nv40_state_stipple_validate,
-       .dirty = {
-               .pipe = NVFX_NEW_STIPPLE | NVFX_NEW_RAST,
-               .hw = NVFX_STATE_STIPPLE,
-       }
-};
index b077713b047cd81d9bdbecd662ae49c86df14f93..e96c9aa6bcf6b8b788f09927a7ca00f5b44fb3fb 100644 (file)
@@ -9,6 +9,7 @@ C_SOURCES = \
        nvfx_state_blend.c \
        nvfx_state_rasterizer.c \
        nvfx_state_scissor.c \
+        nvfx_state_stipple.c \
        nvfx_state_zsa.c \
        nvfx_transfer.c
 
index d97cf30a1df0208ff3aa0846ccdfab84894ecee5..8f5013a9d6b578b1dae4ff1a08d82c077a13ed7d 100644 (file)
@@ -186,6 +186,7 @@ extern struct nvfx_state_entry nvfx_state_blend_colour;
 extern struct nvfx_state_entry nvfx_state_rasterizer;
 extern struct nvfx_state_entry nvfx_state_scissor;
 extern struct nvfx_state_entry nvfx_state_sr;
+extern struct nvfx_state_entry nvfx_state_stipple;
 extern struct nvfx_state_entry nvfx_state_zsa;
 
 /* nvfx_clear.c */
index a30af174e3f24a46477da22ab85302acd8e02201..04c0429ce19402ae987b5f0150cf99faa4017e0e 100644 (file)
@@ -8,7 +8,7 @@ static struct nvfx_state_entry *name##_render_states[] = { \
        &nvxx##_state_framebuffer, \
        &nvfx_state_rasterizer, \
        &nvfx_state_scissor, \
-       &nvxx##_state_stipple, \
+       &nvfx_state_stipple, \
        &nvxx##_state_fragprog, \
        &nvxx##_state_fragtex, \
        &nvxx##_state_vertprog, \
diff --git a/src/gallium/drivers/nvfx/nvfx_state_stipple.c b/src/gallium/drivers/nvfx/nvfx_state_stipple.c
new file mode 100644 (file)
index 0000000..57cd3c9
--- /dev/null
@@ -0,0 +1,40 @@
+#include "nvfx_context.h"
+
+static boolean
+nvfx_state_stipple_validate(struct nvfx_context *nvfx)
+{
+       struct pipe_rasterizer_state *rast = &nvfx->rasterizer->pipe;
+       struct nouveau_grobj *eng3d = nvfx->screen->eng3d;
+       struct nouveau_stateobj *so;
+
+       if (nvfx->state.hw[NVFX_STATE_STIPPLE] &&
+          (rast->poly_stipple_enable == 0 && nvfx->state.stipple_enabled == 0))
+               return FALSE;
+
+       if (rast->poly_stipple_enable) {
+               unsigned i;
+
+               so = so_new(2, 33, 0);
+               so_method(so, eng3d, NV34TCL_POLYGON_STIPPLE_ENABLE, 1);
+               so_data  (so, 1);
+               so_method(so, eng3d, NV34TCL_POLYGON_STIPPLE_PATTERN(0), 32);
+               for (i = 0; i < 32; i++)
+                       so_data(so, nvfx->stipple[i]);
+       } else {
+               so = so_new(1, 1, 0);
+               so_method(so, eng3d, NV34TCL_POLYGON_STIPPLE_ENABLE, 1);
+               so_data  (so, 0);
+       }
+
+       so_ref(so, &nvfx->state.hw[NVFX_STATE_STIPPLE]);
+       so_ref(NULL, &so);
+       return TRUE;
+}
+
+struct nvfx_state_entry nvfx_state_stipple = {
+       .validate = nvfx_state_stipple_validate,
+       .dirty = {
+               .pipe = NVFX_NEW_STIPPLE | NVFX_NEW_RAST,
+               .hw = NVFX_STATE_STIPPLE,
+       }
+};