Mesa (master): d3d1x: bind NULL CSOs before destroying default CSOs on context dtor
Luca Barbieri
lb at kemper.freedesktop.org
Thu Sep 23 11:38:28 UTC 2010
Module: Mesa
Branch: master
Commit: 1b15a3cafdc699c63466059d56f36b295475ee9e
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=1b15a3cafdc699c63466059d56f36b295475ee9e
Author: Luca Barbieri <luca at luca-barbieri.com>
Date: Thu Sep 23 03:49:17 2010 +0200
d3d1x: bind NULL CSOs before destroying default CSOs on context dtor
Otherwise softpipe and llvmpipe assert.
---
.../state_trackers/d3d1x/gd3d11/d3d11_context.h | 18 ++++++++++++++++++
1 files changed, 18 insertions(+), 0 deletions(-)
diff --git a/src/gallium/state_trackers/d3d1x/gd3d11/d3d11_context.h b/src/gallium/state_trackers/d3d1x/gd3d11/d3d11_context.h
index 7e49c3a..3c789d3 100644
--- a/src/gallium/state_trackers/d3d1x/gd3d11/d3d11_context.h
+++ b/src/gallium/state_trackers/d3d1x/gd3d11/d3d11_context.h
@@ -267,14 +267,32 @@ struct GalliumD3D10Device : public GalliumD3D10ScreenImpl<threadsafe>
{
util_destroy_gen_mipmap(gen_mipmap);
cso_destroy_context(cso_ctx);
+
+ pipe->bind_vertex_elements_state(pipe, 0);
pipe->delete_vertex_elements_state(pipe, default_input_layout);
+
+ pipe->bind_rasterizer_state(pipe, 0);
pipe->delete_rasterizer_state(pipe, default_rasterizer);
+
+ pipe->bind_depth_stencil_alpha_state(pipe, 0);
pipe->delete_depth_stencil_alpha_state(pipe, default_depth_stencil);
+
+ pipe->bind_blend_state(pipe, 0);
pipe->delete_blend_state(pipe, default_blend);
+
+ pipe->bind_fragment_sampler_states(pipe, 0, 0);
+ pipe->bind_vertex_sampler_states(pipe, 0, 0);
+ if(pipe->bind_geometry_sampler_states)
+ pipe->bind_geometry_sampler_states(pipe, 0, 0);
pipe->delete_sampler_state(pipe, default_sampler);
pipe->delete_sampler_state(pipe, ld_sampler);
+
+ pipe->bind_fs_state(pipe, 0);
pipe->delete_fs_state(pipe, default_shaders[PIPE_SHADER_FRAGMENT]);
+
+ pipe->bind_vs_state(pipe, 0);
pipe->delete_vs_state(pipe, default_shaders[PIPE_SHADER_VERTEX]);
+
if(owns_pipe)
pipe->destroy(pipe);
}
More information about the mesa-commit
mailing list