Module: wine Branch: master Commit: f31849ba8b4cb168f19b824dfff22a58b306640d URL: https://gitlab.winehq.org/wine/wine/-/commit/f31849ba8b4cb168f19b824dfff22a5...
Author: Elizabeth Figura zfigura@codeweavers.com Date: Wed Mar 20 18:24:31 2024 -0500
wined3d: Remove the no longer used WINED3D_SHADER_CAP_VS_CLIPPING flag.
---
dlls/wined3d/adapter_gl.c | 1 - dlls/wined3d/adapter_vk.c | 1 - dlls/wined3d/ffp_gl.c | 15 --------------- dlls/wined3d/glsl_shader.c | 8 +------- dlls/wined3d/shader_spirv.c | 3 +-- dlls/wined3d/utils.c | 11 ----------- dlls/wined3d/wined3d_private.h | 5 +---- 7 files changed, 3 insertions(+), 41 deletions(-)
diff --git a/dlls/wined3d/adapter_gl.c b/dlls/wined3d/adapter_gl.c index 823304600f6..56aa9b73269 100644 --- a/dlls/wined3d/adapter_gl.c +++ b/dlls/wined3d/adapter_gl.c @@ -4909,7 +4909,6 @@ static void wined3d_adapter_gl_init_d3d_info(struct wined3d_adapter_gl *adapter_ d3d_info->wined3d_creation_flags = wined3d_creation_flags; d3d_info->emulated_flatshading = vertex_caps.emulated_flatshading; d3d_info->ffp_alpha_test = !!gl_info->supported[WINED3D_GL_LEGACY_CONTEXT]; - d3d_info->vs_clipping = shader_caps.wined3d_caps & WINED3D_SHADER_CAP_VS_CLIPPING; d3d_info->shader_double_precision = !!(shader_caps.wined3d_caps & WINED3D_SHADER_CAP_DOUBLE_PRECISION); d3d_info->shader_output_interpolation = !!(shader_caps.wined3d_caps & WINED3D_SHADER_CAP_OUTPUT_INTERPOLATION); d3d_info->viewport_array_index_any_shader = !!gl_info->supported[ARB_SHADER_VIEWPORT_LAYER_ARRAY]; diff --git a/dlls/wined3d/adapter_vk.c b/dlls/wined3d/adapter_vk.c index 8e004339525..aa02d03b7a4 100644 --- a/dlls/wined3d/adapter_vk.c +++ b/dlls/wined3d/adapter_vk.c @@ -2327,7 +2327,6 @@ static void wined3d_adapter_vk_init_d3d_info(struct wined3d_adapter_vk *adapter_
d3d_info->emulated_flatshading = vertex_caps.emulated_flatshading; d3d_info->ffp_alpha_test = false; - d3d_info->vs_clipping = !!(shader_caps.wined3d_caps & WINED3D_SHADER_CAP_VS_CLIPPING); d3d_info->shader_double_precision = !!(shader_caps.wined3d_caps & WINED3D_SHADER_CAP_DOUBLE_PRECISION); d3d_info->shader_output_interpolation = !!(shader_caps.wined3d_caps & WINED3D_SHADER_CAP_OUTPUT_INTERPOLATION); d3d_info->viewport_array_index_any_shader = false; /* VK_EXT_shader_viewport_index_layer */ diff --git a/dlls/wined3d/ffp_gl.c b/dlls/wined3d/ffp_gl.c index e2b9be647d0..b1a3c56a097 100644 --- a/dlls/wined3d/ffp_gl.c +++ b/dlls/wined3d/ffp_gl.c @@ -537,21 +537,6 @@ void state_clipping(struct wined3d_context *context, const struct wined3d_state struct wined3d_context_gl *context_gl = wined3d_context_gl(context); uint32_t enable_mask;
- if (use_vs(state) && !context->d3d_info->vs_clipping) - { - static BOOL warned; - - /* The OpenGL spec says that clipping planes are disabled when using - * shaders. Direct3D planes aren't, so that is an issue. The MacOS ATI - * driver keeps clipping planes activated with shaders in some - * conditions I got sick of tracking down. The shader state handler - * disables all clip planes because of that - don't do anything here - * and keep them disabled. */ - if (state->render_states[WINED3D_RS_CLIPPLANEENABLE] && !warned++) - FIXME("Clipping not supported with vertex shaders.\n"); - return; - } - /* glEnable(GL_CLIP_PLANEx) doesn't apply to (ARB backend) vertex shaders. * The enabled / disabled planes are hardcoded into the shader. Update the * shader to update the enabled clipplanes. In case of fixed function, we diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c index c114734e013..13ba1d65d13 100644 --- a/dlls/wined3d/glsl_shader.c +++ b/dlls/wined3d/glsl_shader.c @@ -9594,7 +9594,6 @@ static GLuint shader_glsl_generate_ffp_fragment_shader(struct shader_glsl_priv * const struct wined3d_gl_info *gl_info = context_gl->gl_info; const BOOL legacy_syntax = needs_legacy_glsl_syntax(gl_info); BOOL tempreg_used = FALSE, tfactor_used = FALSE; - UINT lowest_disabled_stage; GLuint shader_id; DWORD arg0, arg1, arg2; unsigned int stage; @@ -9660,7 +9659,6 @@ static GLuint shader_glsl_generate_ffp_fragment_shader(struct shader_glsl_priv * if (arg0 == WINED3DTA_CONSTANT || arg1 == WINED3DTA_CONSTANT || arg2 == WINED3DTA_CONSTANT) tss_const_map |= 1u << stage; } - lowest_disabled_stage = stage;
shader_glsl_add_version_declaration(buffer, gl_info);
@@ -9799,9 +9797,6 @@ static GLuint shader_glsl_generate_ffp_fragment_shader(struct shader_glsl_priv * if (legacy_syntax && settings->fog != WINED3D_FFP_PS_FOG_OFF) shader_addline(buffer, "ffp_varying_fogcoord = gl_FogFragCoord;\n");
- if (lowest_disabled_stage < 7 && settings->emul_clipplanes) - shader_addline(buffer, "if (any(lessThan(ffp_texcoord[7], vec4(0.0)))) discard;\n"); - /* Generate texture sampling instructions */ for (stage = 0; stage < WINED3D_MAX_FFP_TEXTURES && settings->op[stage].cop != WINED3D_TOP_DISABLE; ++stage) { @@ -11373,8 +11368,7 @@ static void shader_glsl_get_caps(const struct wined3d_adapter *adapter, struct s /* Ideally we'd only set caps like sRGB writes here if supported by both * the shader backend and the fragment pipe, but we can get called before * shader_glsl_alloc(). */ - caps->wined3d_caps = WINED3D_SHADER_CAP_VS_CLIPPING - | WINED3D_SHADER_CAP_SRGB_WRITE; + caps->wined3d_caps = WINED3D_SHADER_CAP_SRGB_WRITE; if (needs_interpolation_qualifiers_for_shader_outputs(gl_info)) caps->wined3d_caps |= WINED3D_SHADER_CAP_OUTPUT_INTERPOLATION; if (shader_glsl_full_ffp_varyings(gl_info)) diff --git a/dlls/wined3d/shader_spirv.c b/dlls/wined3d/shader_spirv.c index 1079c19b99b..37fc1cb22d1 100644 --- a/dlls/wined3d/shader_spirv.c +++ b/dlls/wined3d/shader_spirv.c @@ -1076,8 +1076,7 @@ static void shader_spirv_get_caps(const struct wined3d_adapter *adapter, struct caps->ps_uniform_count = WINED3D_MAX_PS_CONSTS_F; caps->ps_1x_max_value = FLT_MAX; caps->varying_count = 0; - caps->wined3d_caps = WINED3D_SHADER_CAP_VS_CLIPPING - | WINED3D_SHADER_CAP_SRGB_WRITE + caps->wined3d_caps = WINED3D_SHADER_CAP_SRGB_WRITE | WINED3D_SHADER_CAP_FULL_FFP_VARYINGS; }
diff --git a/dlls/wined3d/utils.c b/dlls/wined3d/utils.c index 7e4fe21e727..ef95c40135a 100644 --- a/dlls/wined3d/utils.c +++ b/dlls/wined3d/utils.c @@ -6491,17 +6491,6 @@ void wined3d_ffp_get_fs_settings(const struct wined3d_context *context, const st } } 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]) - { - /* No need to emulate clipplanes if GL supports native vertex shader clipping or if - * the fixed function vertex pipeline is used(which always supports clipplanes), or - * if no clipplane is enabled - */ - settings->emul_clipplanes = 0; - } else { - settings->emul_clipplanes = 1; - }
texture = wined3d_state_get_ffp_texture(state, 0); if (state->render_states[WINED3D_RS_COLORKEYENABLE] diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h index 34c820497ad..c762de4b5bf 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h @@ -222,7 +222,6 @@ struct wined3d_d3d_info uint32_t wined3d_creation_flags; uint32_t emulated_flatshading : 1; uint32_t ffp_alpha_test : 1; - uint32_t vs_clipping : 1; uint32_t shader_double_precision : 1; uint32_t shader_output_interpolation : 1; uint32_t viewport_array_index_any_shader : 1; @@ -1402,7 +1401,6 @@ BOOL shader_get_stream_output_register_info(const struct wined3d_shader *shader,
typedef void (*SHADER_HANDLER)(const struct wined3d_shader_instruction *);
-#define WINED3D_SHADER_CAP_VS_CLIPPING 0x00000001u #define WINED3D_SHADER_CAP_SRGB_WRITE 0x00000002u #define WINED3D_SHADER_CAP_DOUBLE_PRECISION 0x00000004u #define WINED3D_SHADER_CAP_OUTPUT_INTERPOLATION 0x00000008u @@ -2669,9 +2667,8 @@ struct texture_stage_op struct ffp_frag_settings { struct texture_stage_op op[WINED3D_MAX_FFP_TEXTURES]; - enum wined3d_ffp_ps_fog_mode fog; + unsigned char fog; /* enum wined3d_ffp_ps_fog_mode */ unsigned char sRGB_write; - unsigned char emul_clipplanes; unsigned char texcoords_initialized; unsigned char color_key_enabled : 1; unsigned char pointsprite : 1;