Henri Verbeet : wined3d: Store sRGB write control support in struct wined3d_d3d_info.

Alexandre Julliard julliard at winehq.org
Tue Aug 6 17:41:58 CDT 2019


Module: wine
Branch: master
Commit: d4fa7e4cfcfe6e2d4c2bead0d4460dbcdc77366a
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=d4fa7e4cfcfe6e2d4c2bead0d4460dbcdc77366a

Author: Henri Verbeet <hverbeet at codeweavers.com>
Date:   Tue Aug  6 01:41:15 2019 +0430

wined3d: Store sRGB write control support in struct wined3d_d3d_info.

Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/wined3d/adapter_gl.c      |  1 +
 dlls/wined3d/shader.c          |  2 +-
 dlls/wined3d/utils.c           |  2 +-
 dlls/wined3d/wined3d_private.h | 31 ++++++++++++++++---------------
 4 files changed, 19 insertions(+), 17 deletions(-)

diff --git a/dlls/wined3d/adapter_gl.c b/dlls/wined3d/adapter_gl.c
index 8e06bf2..abfa31b 100644
--- a/dlls/wined3d/adapter_gl.c
+++ b/dlls/wined3d/adapter_gl.c
@@ -3795,6 +3795,7 @@ static BOOL wined3d_adapter_init_gl_caps(struct wined3d_adapter *adapter,
     d3d_info->vertex_bgra = !!gl_info->supported[ARB_VERTEX_ARRAY_BGRA];
     d3d_info->texture_swizzle = !!gl_info->supported[ARB_TEXTURE_SWIZZLE];
     d3d_info->srgb_read_control = !!gl_info->supported[EXT_TEXTURE_SRGB_DECODE];
+    d3d_info->srgb_write_control = !!gl_info->supported[ARB_FRAMEBUFFER_SRGB];
 
     if (gl_info->supported[ARB_TEXTURE_MULTISAMPLE])
         d3d_info->multisample_draw_location = WINED3D_LOCATION_TEXTURE_RGB;
diff --git a/dlls/wined3d/shader.c b/dlls/wined3d/shader.c
index 1d8540e..ac3de3d 100644
--- a/dlls/wined3d/shader.c
+++ b/dlls/wined3d/shader.c
@@ -3902,7 +3902,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 (!gl_info->supported[ARB_FRAMEBUFFER_SRGB] && needs_srgb_write(context, state, state->fb))
+    if (!d3d_info->srgb_write_control && needs_srgb_write(context, state, state->fb))
     {
         static unsigned int warned = 0;
 
diff --git a/dlls/wined3d/utils.c b/dlls/wined3d/utils.c
index 0872b10..1e99deb 100644
--- a/dlls/wined3d/utils.c
+++ b/dlls/wined3d/utils.c
@@ -6167,7 +6167,7 @@ void gen_ffp_frag_op(const struct wined3d_context *context, const struct wined3d
                 break;
         }
     }
-    settings->sRGB_write = !gl_info->supported[ARB_FRAMEBUFFER_SRGB] && needs_srgb_write(context, state, state->fb);
+    settings->sRGB_write = !d3d_info->srgb_write_control && needs_srgb_write(context, 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 fe4510e..a21721a 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -198,21 +198,22 @@ struct wined3d_d3d_info
 {
     struct wined3d_d3d_limits limits;
     struct wined3d_ffp_attrib_ops ffp_attrib_ops;
-    unsigned int wined3d_creation_flags;
-    unsigned int xyzrhw : 1;
-    unsigned int emulated_flatshading : 1;
-    unsigned int ffp_generic_attributes : 1;
-    unsigned int vs_clipping : 1;
-    unsigned int shader_color_key : 1;
-    unsigned int shader_double_precision : 1;
-    unsigned int shader_output_interpolation : 1;
-    unsigned int viewport_array_index_any_shader : 1;
-    unsigned int texture_npot : 1;
-    unsigned int texture_npot_conditional : 1;
-    unsigned int draw_base_vertex_offset : 1;
-    unsigned int vertex_bgra : 1;
-    unsigned int texture_swizzle : 1;
-    unsigned int srgb_read_control : 1;
+    uint32_t wined3d_creation_flags;
+    uint32_t xyzrhw : 1;
+    uint32_t emulated_flatshading : 1;
+    uint32_t ffp_generic_attributes : 1;
+    uint32_t vs_clipping : 1;
+    uint32_t shader_color_key : 1;
+    uint32_t shader_double_precision : 1;
+    uint32_t shader_output_interpolation : 1;
+    uint32_t viewport_array_index_any_shader : 1;
+    uint32_t texture_npot : 1;
+    uint32_t texture_npot_conditional : 1;
+    uint32_t draw_base_vertex_offset : 1;
+    uint32_t vertex_bgra : 1;
+    uint32_t texture_swizzle : 1;
+    uint32_t srgb_read_control : 1;
+    uint32_t srgb_write_control : 1;
     enum wined3d_feature_level feature_level;
 
     DWORD multisample_draw_location;




More information about the wine-cvs mailing list