Module: wine Branch: master Commit: 4ff594e885cd999604d3f6cde67b38b3a83f7baf URL: https://source.winehq.org/git/wine.git/?a=commit;h=4ff594e885cd999604d3f6cde...
Author: Matteo Bruni mbruni@codeweavers.com Date: Wed Mar 18 14:01:25 2020 +0100
wined3d: Don't pass the whole context to needs_srgb_write().
Signed-off-by: Matteo Bruni mbruni@codeweavers.com Signed-off-by: Henri Verbeet hverbeet@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/wined3d/context.c | 2 +- dlls/wined3d/device.c | 2 +- dlls/wined3d/shader.c | 2 +- dlls/wined3d/state.c | 2 +- dlls/wined3d/utils.c | 2 +- dlls/wined3d/wined3d_private.h | 4 ++-- 6 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c index 633d5176ba..1c15c25859 100644 --- a/dlls/wined3d/context.c +++ b/dlls/wined3d/context.c @@ -3414,7 +3414,7 @@ BOOL wined3d_context_gl_apply_clear_state(struct wined3d_context_gl *context_gl, gl_info->gl_ops.gl.p_glEnable(GL_SCISSOR_TEST); if (rt_count && gl_info->supported[ARB_FRAMEBUFFER_SRGB]) { - if (needs_srgb_write(&context_gl->c, state, fb)) + if (needs_srgb_write(context_gl->c.d3d_info, state, fb)) gl_info->gl_ops.gl.p_glEnable(GL_FRAMEBUFFER_SRGB); else gl_info->gl_ops.gl.p_glDisable(GL_FRAMEBUFFER_SRGB); diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c index 42d645d201..0a0c4c526c 100644 --- a/dlls/wined3d/device.c +++ b/dlls/wined3d/device.c @@ -426,7 +426,7 @@ void device_clear_render_targets(struct wined3d_device *device, UINT rt_count, c wined3d_texture_invalidate_location(texture, rtv->sub_resource_idx, ~rtv->resource->draw_binding); }
- if (!gl_info->supported[ARB_FRAMEBUFFER_SRGB] && needs_srgb_write(context, state, fb)) + if (!gl_info->supported[ARB_FRAMEBUFFER_SRGB] && needs_srgb_write(context->d3d_info, state, fb)) { if (rt_count > 1) WARN("Clearing multiple sRGB render targets without GL_ARB_framebuffer_sRGB " diff --git a/dlls/wined3d/shader.c b/dlls/wined3d/shader.c index 3e2a756757..95db994ff3 100644 --- a/dlls/wined3d/shader.c +++ b/dlls/wined3d/shader.c @@ -3904,7 +3904,7 @@ void find_ps_compile_args(const struct wined3d_state *state, const struct wined3 unsigned int i;
memset(args, 0, sizeof(*args)); /* FIXME: Make sure all bits are set. */ - if (!d3d_info->srgb_write_control && needs_srgb_write(context, state, state->fb)) + if (!d3d_info->srgb_write_control && needs_srgb_write(d3d_info, state, state->fb)) { static unsigned int warned = 0;
diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c index fb55bfe0f3..b5d54db5b3 100644 --- a/dlls/wined3d/state.c +++ b/dlls/wined3d/state.c @@ -4474,7 +4474,7 @@ void state_srgbwrite(struct wined3d_context *context, const struct wined3d_state
TRACE("context %p, state %p, state_id %#x.\n", context, state, state_id);
- if (needs_srgb_write(context, state, state->fb)) + if (needs_srgb_write(context->d3d_info, state, state->fb)) gl_info->gl_ops.gl.p_glEnable(GL_FRAMEBUFFER_SRGB); else gl_info->gl_ops.gl.p_glDisable(GL_FRAMEBUFFER_SRGB); diff --git a/dlls/wined3d/utils.c b/dlls/wined3d/utils.c index 54866da533..f3ed3b3cec 100644 --- a/dlls/wined3d/utils.c +++ b/dlls/wined3d/utils.c @@ -6236,7 +6236,7 @@ void gen_ffp_frag_op(const struct wined3d_context *context, const struct wined3d break; } } - settings->sRGB_write = !d3d_info->srgb_write_control && needs_srgb_write(context, state, state->fb); + settings->sRGB_write = !d3d_info->srgb_write_control && needs_srgb_write(d3d_info, state, state->fb); if (d3d_info->vs_clipping || !use_vs(state) || !state->render_states[WINED3D_RS_CLIPPING] || !state->render_states[WINED3D_RS_CLIPPLANEENABLE]) { diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h index f8ee3c6446..db806adf71 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h @@ -5118,10 +5118,10 @@ static inline BOOL needs_separate_srgb_gl_texture(const struct wined3d_context * return FALSE; }
-static inline BOOL needs_srgb_write(const struct wined3d_context *context, +static inline BOOL needs_srgb_write(const struct wined3d_d3d_info *d3d_info, const struct wined3d_state *state, const struct wined3d_fb_state *fb) { - return (!(context->d3d_info->wined3d_creation_flags & WINED3D_SRGB_READ_WRITE_CONTROL) + return (!(d3d_info->wined3d_creation_flags & WINED3D_SRGB_READ_WRITE_CONTROL) || state->render_states[WINED3D_RS_SRGBWRITEENABLE]) && fb->render_targets[0] && fb->render_targets[0]->format_flags & WINED3DFMT_FLAG_SRGB_WRITE; }