[PATCH 1/3] wined3d: Disable the depth stencil on multisample mismatch.
Stefan Dösinger
stefan at codeweavers.com
Tue Jun 9 15:48:14 CDT 2015
This patch and the test intentionally do not handle multiple color
buffers.
---
dlls/wined3d/context.c | 21 +++++++++++++++++----
1 file changed, 17 insertions(+), 4 deletions(-)
diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c
index 27ce1bf..d88995b 100644
--- a/dlls/wined3d/context.c
+++ b/dlls/wined3d/context.c
@@ -420,6 +420,7 @@ static void context_apply_fbo_entry(struct wined3d_context *context, GLenum targ
const struct wined3d_gl_info *gl_info = context->gl_info;
unsigned int i;
GLuint read_binding, draw_binding;
+ struct wined3d_surface *depth_stencil = entry->depth_stencil;
if (entry->attached)
{
@@ -437,10 +438,22 @@ static void context_apply_fbo_entry(struct wined3d_context *context, GLenum targ
context_attach_surface_fbo(context, target, i, entry->render_targets[i], entry->color_location);
}
- /* Apply depth targets */
- if (entry->depth_stencil)
- surface_set_compatible_renderbuffer(entry->depth_stencil, entry->render_targets[0]);
- context_attach_depth_stencil_fbo(context, target, entry->depth_stencil, entry->ds_location);
+ if (depth_stencil && entry->render_targets[0]
+ && (depth_stencil->resource.multisample_type
+ != entry->render_targets[0]->resource.multisample_type
+ || depth_stencil->resource.multisample_quality
+ != entry->render_targets[0]->resource.multisample_quality))
+ {
+ WARN("Color multisample type %u and quality %u, depth stencil has %u and %u, disabling ds buffer.\n",
+ entry->render_targets[0]->resource.multisample_quality,
+ entry->render_targets[0]->resource.multisample_type,
+ depth_stencil->resource.multisample_quality, depth_stencil->resource.multisample_type);
+ depth_stencil = NULL;
+ }
+
+ if (depth_stencil)
+ surface_set_compatible_renderbuffer(depth_stencil, entry->render_targets[0]);
+ context_attach_depth_stencil_fbo(context, target, depth_stencil, entry->ds_location);
/* Set valid read and draw buffer bindings to satisfy pedantic pre-ES2_compatibility
* GL contexts requirements. */
--
2.3.6
More information about the wine-patches
mailing list