summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosé Fonseca <[email protected]>2012-06-20 14:25:46 +0100
committerJosé Fonseca <[email protected]>2014-01-23 15:49:32 +0000
commit840154dc5002f7291aa2ece5322be7c2e40d9b6d (patch)
treeab91aef98add0be634a71b2d6a20371da709e8a1
parent1a441805781382067e92cd9f3b324f23164c3024 (diff)
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 <[email protected]> Reviewed-by: Roland Scheidegger <[email protected]>
-rw-r--r--src/gallium/auxiliary/draw/draw_pipe_aaline.c14
-rw-r--r--src/gallium/auxiliary/draw/draw_pipe_pstipple.c14
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 f2895ddc357..8955762ce27 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 73da96677f6..d7dcfdb596f 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;