From 70f017ac4d40642195947f6e03aff83c246dede8 Mon Sep 17 00:00:00 2001 From: Henri Verbeet Date: Thu, 22 Mar 2018 14:22:43 +0430 Subject: [PATCH] wined3d: Get rid of the "StrictDrawOrdering" setting. Signed-off-by: Henri Verbeet Signed-off-by: Alexandre Julliard --- dlls/wined3d/arb_program_shader.c | 5 ++--- dlls/wined3d/buffer.c | 2 -- dlls/wined3d/context.c | 6 ------ dlls/wined3d/device.c | 5 ++--- dlls/wined3d/surface.c | 14 +++----------- dlls/wined3d/texture.c | 3 --- dlls/wined3d/wined3d_main.c | 8 -------- dlls/wined3d/wined3d_private.h | 1 - 8 files changed, 7 insertions(+), 37 deletions(-) diff --git a/dlls/wined3d/arb_program_shader.c b/dlls/wined3d/arb_program_shader.c index e9c9d7d1bfb..4b4cd4e0baa 100644 --- a/dlls/wined3d/arb_program_shader.c +++ b/dlls/wined3d/arb_program_shader.c @@ -7886,9 +7886,8 @@ static DWORD arbfp_blitter_blit(struct wined3d_blitter *blitter, enum wined3d_bl /* Leave the opengl state valid for blitting */ arbfp_blit_unset(context->gl_info); - if (wined3d_settings.strict_draw_ordering - || (dst_texture->swapchain && (dst_texture->swapchain->front_buffer == dst_texture))) - context->gl_info->gl_ops.gl.p_glFlush(); /* Flush to ensure ordering across contexts. */ + if (dst_texture->swapchain && (dst_texture->swapchain->front_buffer == dst_texture)) + context->gl_info->gl_ops.gl.p_glFlush(); return dst_location; } diff --git a/dlls/wined3d/buffer.c b/dlls/wined3d/buffer.c index 1055326ede1..5b924704dff 100644 --- a/dlls/wined3d/buffer.c +++ b/dlls/wined3d/buffer.c @@ -1183,8 +1183,6 @@ static void wined3d_buffer_unmap(struct wined3d_buffer *buffer) } GL_EXTCALL(glUnmapBuffer(buffer->buffer_type_hint)); - if (wined3d_settings.strict_draw_ordering) - gl_info->gl_ops.gl.p_glFlush(); /* Flush to ensure ordering across contexts. */ context_release(context); buffer_clear_dirty_areas(buffer); diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c index 34102c76784..db32f1dc978 100644 --- a/dlls/wined3d/context.c +++ b/dlls/wined3d/context.c @@ -4322,9 +4322,6 @@ void dispatch_compute(struct wined3d_device *device, const struct wined3d_state GL_EXTCALL(glMemoryBarrier(GL_ALL_BARRIER_BITS)); checkGLcall("glMemoryBarrier"); - if (wined3d_settings.strict_draw_ordering) - gl_info->gl_ops.gl.p_glFlush(); /* Flush to ensure ordering across contexts. */ - context_release(context); } @@ -4985,8 +4982,5 @@ void draw_primitive(struct wined3d_device *device, const struct wined3d_state *s for (i = 0; i < context->buffer_fence_count; ++i) wined3d_fence_issue(context->buffer_fences[i], device); - if (wined3d_settings.strict_draw_ordering) - gl_info->gl_ops.gl.p_glFlush(); /* Flush to ensure ordering across contexts. */ - context_release(context); } diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c index c5517f5fcde..d4e39db26bd 100644 --- a/dlls/wined3d/device.c +++ b/dlls/wined3d/device.c @@ -457,9 +457,8 @@ void device_clear_render_targets(struct wined3d_device *device, UINT rt_count, c } } - if (wined3d_settings.strict_draw_ordering || (flags & WINED3DCLEAR_TARGET - && target->swapchain && target->swapchain->front_buffer == target)) - gl_info->gl_ops.gl.p_glFlush(); /* Flush to ensure ordering across contexts. */ + if (flags & WINED3DCLEAR_TARGET && target->swapchain && target->swapchain->front_buffer == target) + gl_info->gl_ops.gl.p_glFlush(); context_release(context); } diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c index 2a725e61e1c..ea6a9848535 100644 --- a/dlls/wined3d/surface.c +++ b/dlls/wined3d/surface.c @@ -337,9 +337,6 @@ static void texture2d_depth_blt_fbo(const struct wined3d_device *device, struct gl_info->fbo_ops.glBlitFramebuffer(src_rect->left, src_rect->top, src_rect->right, src_rect->bottom, dst_rect->left, dst_rect->top, dst_rect->right, dst_rect->bottom, gl_mask, GL_NEAREST); checkGLcall("glBlitFramebuffer()"); - - if (wined3d_settings.strict_draw_ordering) - gl_info->gl_ops.gl.p_glFlush(); /* Flush to ensure ordering across contexts. */ } static BOOL is_multisample_location(const struct wined3d_texture *texture, DWORD location) @@ -489,8 +486,7 @@ static void texture2d_blt_fbo(const struct wined3d_device *device, struct wined3 dst_rect->left, dst_rect->top, dst_rect->right, dst_rect->bottom, GL_COLOR_BUFFER_BIT, gl_filter); checkGLcall("glBlitFramebuffer()"); - if (wined3d_settings.strict_draw_ordering || (dst_location == WINED3D_LOCATION_DRAWABLE - && dst_texture->swapchain->front_buffer == dst_texture)) + if (dst_location == WINED3D_LOCATION_DRAWABLE && dst_texture->swapchain->front_buffer == dst_texture) gl_info->gl_ops.gl.p_glFlush(); if (restore_texture) @@ -1741,9 +1737,6 @@ static void fb_copy_to_texture_hwstretch(struct wined3d_texture *dst_texture, un checkGLcall("glDeleteTextures(1, &backup)"); } - if (wined3d_settings.strict_draw_ordering) - gl_info->gl_ops.gl.p_glFlush(); /* Flush to ensure ordering across contexts. */ - context_release(context); /* The texture is now most up to date - If the surface is a render target @@ -2662,9 +2655,8 @@ static DWORD ffp_blitter_blit(struct wined3d_blitter *blitter, enum wined3d_blit checkGLcall("glDisable(GL_TEXTURE_RECTANGLE_ARB)"); } - if (wined3d_settings.strict_draw_ordering - || (dst_texture->swapchain && dst_texture->swapchain->front_buffer == dst_texture)) - gl_info->gl_ops.gl.p_glFlush(); /* Flush to ensure ordering across contexts. */ + if (dst_texture->swapchain && dst_texture->swapchain->front_buffer == dst_texture) + gl_info->gl_ops.gl.p_glFlush(); /* Restore the color key parameters */ wined3d_texture_set_color_key(src_texture, WINED3D_CKEY_SRC_BLT, diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c index 187e2a246b6..9e6b599c8e9 100644 --- a/dlls/wined3d/texture.c +++ b/dlls/wined3d/texture.c @@ -1931,9 +1931,6 @@ void wined3d_texture_upload_data(struct wined3d_texture *texture, unsigned int s } heap_free(converted_mem); - if (wined3d_settings.strict_draw_ordering) - gl_info->gl_ops.gl.p_glFlush(); - if (gl_info->quirks & WINED3D_QUIRK_FBO_TEX_UPDATE) { struct wined3d_device *device = texture->resource.device; diff --git a/dlls/wined3d/wined3d_main.c b/dlls/wined3d/wined3d_main.c index b57bcdcc873..56fae6b3f96 100644 --- a/dlls/wined3d/wined3d_main.c +++ b/dlls/wined3d/wined3d_main.c @@ -83,7 +83,6 @@ struct wined3d_settings wined3d_settings = NULL, /* No wine logo by default */ TRUE, /* Prefer multisample textures to multisample renderbuffers. */ ~0u, /* Don't force a specific sample count by default. */ - FALSE, /* No strict draw ordering. */ FALSE, /* Don't range check relative addressing indices in float constants. */ ~0U, /* No VS shader model limit by default. */ ~0U, /* No HS shader model limit by default. */ @@ -290,13 +289,6 @@ static BOOL wined3d_dll_init(HINSTANCE hInstDLL) if (!get_config_key_dword(hkey, appkey, "SampleCount", &wined3d_settings.sample_count)) ERR_(winediag)("Forcing sample count to %u. This may not be compatible with all applications.\n", wined3d_settings.sample_count); - if (!get_config_key(hkey, appkey, "StrictDrawOrdering", buffer, size) - && !strcmp(buffer,"enabled")) - { - ERR_(winediag)("\"StrictDrawOrdering\" is deprecated, please use \"csmt\" instead.\n"); - TRACE("Enforcing strict draw ordering.\n"); - wined3d_settings.strict_draw_ordering = TRUE; - } if (!get_config_key(hkey, appkey, "CheckFloatConstants", buffer, size) && !strcmp(buffer, "enabled")) { diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h index fdbcd7c3795..5e8734e7a97 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h @@ -395,7 +395,6 @@ struct wined3d_settings char *logo; unsigned int multisample_textures; unsigned int sample_count; - BOOL strict_draw_ordering; BOOL check_float_constants; unsigned int max_sm_vs; unsigned int max_sm_hs;