From 840154dc5002f7291aa2ece5322be7c2e40d9b6d Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jos=C3=A9=20Fonseca?= Date: Wed, 20 Jun 2012 14:25:46 +0100 Subject: [PATCH] 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 Reviewed-by: Roland Scheidegger --- 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 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; -- 2.30.2