Mesa (master): draw: Save original driver functions earlier.

Jose Fonseca jrfonseca at kemper.freedesktop.org
Thu Jan 23 15:54:33 UTC 2014


Module: Mesa
Branch: master
Commit: 840154dc5002f7291aa2ece5322be7c2e40d9b6d
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=840154dc5002f7291aa2ece5322be7c2e40d9b6d

Author: José Fonseca <jfonseca at vmware.com>
Date:   Wed Jun 20 14:25:46 2012 +0100

draw: Save original driver functions earlier.

Otherwise they will be NULL when stage destroy is invoked prematurely,
(i.e, on out of memory).

Reviewed-by: Brian Paul <brianp at vmware.com>
Reviewed-by: Roland Scheidegger <sroland at vmware.com>

---

 src/gallium/auxiliary/draw/draw_pipe_aaline.c   |   14 +++++++-------
 src/gallium/auxiliary/draw/draw_pipe_pstipple.c |   14 +++++++-------
 2 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/src/gallium/auxiliary/draw/draw_pipe_aaline.c b/src/gallium/auxiliary/draw/draw_pipe_aaline.c
index f2895dd..8955762 100644
--- a/src/gallium/auxiliary/draw/draw_pipe_aaline.c
+++ b/src/gallium/auxiliary/draw/draw_pipe_aaline.c
@@ -996,13 +996,6 @@ draw_install_aaline_stage(struct draw_context *draw, struct pipe_context *pipe)
    if (!aaline)
       goto fail;
 
-   /* create special texture, sampler state */
-   if (!aaline_create_texture(aaline))
-      goto fail;
-
-   if (!aaline_create_sampler(aaline))
-      goto fail;
-
    /* save original driver functions */
    aaline->driver_create_fs_state = pipe->create_fs_state;
    aaline->driver_bind_fs_state = pipe->bind_fs_state;
@@ -1011,6 +1004,13 @@ draw_install_aaline_stage(struct draw_context *draw, struct pipe_context *pipe)
    aaline->driver_bind_sampler_states = pipe->bind_sampler_states;
    aaline->driver_set_sampler_views = pipe->set_sampler_views;
 
+   /* create special texture, sampler state */
+   if (!aaline_create_texture(aaline))
+      goto fail;
+
+   if (!aaline_create_sampler(aaline))
+      goto fail;
+
    /* override the driver's functions */
    pipe->create_fs_state = aaline_create_fs_state;
    pipe->bind_fs_state = aaline_bind_fs_state;
diff --git a/src/gallium/auxiliary/draw/draw_pipe_pstipple.c b/src/gallium/auxiliary/draw/draw_pipe_pstipple.c
index 73da966..d7dcfdb 100644
--- a/src/gallium/auxiliary/draw/draw_pipe_pstipple.c
+++ b/src/gallium/auxiliary/draw/draw_pipe_pstipple.c
@@ -794,13 +794,6 @@ draw_install_pstipple_stage(struct draw_context *draw,
 
    draw->pipeline.pstipple = &pstip->stage;
 
-   /* create special texture, sampler state */
-   if (!pstip_create_texture(pstip))
-      goto fail;
-
-   if (!pstip_create_sampler(pstip))
-      goto fail;
-
    /* save original driver functions */
    pstip->driver_create_fs_state = pipe->create_fs_state;
    pstip->driver_bind_fs_state = pipe->bind_fs_state;
@@ -810,6 +803,13 @@ draw_install_pstipple_stage(struct draw_context *draw,
    pstip->driver_set_sampler_views = pipe->set_sampler_views;
    pstip->driver_set_polygon_stipple = pipe->set_polygon_stipple;
 
+   /* create special texture, sampler state */
+   if (!pstip_create_texture(pstip))
+      goto fail;
+
+   if (!pstip_create_sampler(pstip))
+      goto fail;
+
    /* override the driver's functions */
    pipe->create_fs_state = pstip_create_fs_state;
    pipe->bind_fs_state = pstip_bind_fs_state;




More information about the mesa-commit mailing list