summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/gallium/state_trackers/d3d1x/gd3d11/d3d11_context.h18
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 7e49c3a2c5..3c789d3af0 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);
}