From 2f95fb478268eb63d18f405f6b6d00f778a41ca0 Mon Sep 17 00:00:00 2001 From: Paul Gofman Date: Tue, 3 Dec 2019 03:43:30 +0300 Subject: [PATCH] Rebase against 5536df1ee1042c6cf20a7d96c43520003a547092 --- ...d-implicit-cast-of-interface-pointer.patch | 16 ++--- patches/patchinstall.sh | 33 +-------- ...ed3d-Support-indexed-vertex-blending.patch | 66 +++++++++--------- ...ctual-vertex-shader-float-constants-.patch | 41 +++++++----- ...SWVP-vertex-shader-constants-limit-i.patch | 67 ++++++++++--------- ...extremely-noisy-FIXME-in-wined3d_tex.patch | 18 ++--- patches/wusa-MSU_Package_Installer/definition | 2 + 7 files changed, 112 insertions(+), 131 deletions(-) diff --git a/patches/Compiler_Warnings/0026-dwrite-Avoid-implicit-cast-of-interface-pointer.patch b/patches/Compiler_Warnings/0026-dwrite-Avoid-implicit-cast-of-interface-pointer.patch index 142c2c40..36dc060c 100644 --- a/patches/Compiler_Warnings/0026-dwrite-Avoid-implicit-cast-of-interface-pointer.patch +++ b/patches/Compiler_Warnings/0026-dwrite-Avoid-implicit-cast-of-interface-pointer.patch @@ -1,4 +1,4 @@ -From 14f3c7debf91be0e5b36299f330541f3146d00ca Mon Sep 17 00:00:00 2001 +From f5c1515f74740db99fbae93cf46f2162be65b93d Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Tue, 22 Mar 2016 21:58:40 +0100 Subject: [PATCH] dwrite: Avoid implicit cast of interface pointer. @@ -9,10 +9,10 @@ Subject: [PATCH] dwrite: Avoid implicit cast of interface pointer. 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/dlls/dwrite/font.c b/dlls/dwrite/font.c -index be9ff88fe44..44c4426c9ff 100644 +index 1bf88d6b17..94cbb82875 100644 --- a/dlls/dwrite/font.c +++ b/dlls/dwrite/font.c -@@ -1781,7 +1781,7 @@ static struct dwrite_font *unsafe_impl_from_IDWriteFont(IDWriteFont *iface) +@@ -1865,7 +1865,7 @@ static struct dwrite_font *unsafe_impl_from_IDWriteFont(IDWriteFont *iface) if (!iface) return NULL; assert(iface->lpVtbl == (IDWriteFontVtbl*)&dwritefontvtbl); @@ -21,20 +21,20 @@ index be9ff88fe44..44c4426c9ff 100644 } struct dwrite_fontface *unsafe_impl_from_IDWriteFontFace(IDWriteFontFace *iface) -@@ -1789,7 +1789,7 @@ struct dwrite_fontface *unsafe_impl_from_IDWriteFontFace(IDWriteFontFace *iface) +@@ -1873,7 +1873,7 @@ struct dwrite_fontface *unsafe_impl_from_IDWriteFontFace(IDWriteFontFace *iface) if (!iface) return NULL; assert(iface->lpVtbl == (IDWriteFontFaceVtbl*)&dwritefontfacevtbl); -- return CONTAINING_RECORD(iface, struct dwrite_fontface, IDWriteFontFace4_iface); -+ return CONTAINING_RECORD((IDWriteFontFace4 *)iface, struct dwrite_fontface, IDWriteFontFace4_iface); +- return CONTAINING_RECORD(iface, struct dwrite_fontface, IDWriteFontFace5_iface); ++ return CONTAINING_RECORD((IDWriteFontFace5 *)iface, struct dwrite_fontface, IDWriteFontFace5_iface); } void get_logfont_from_font(IDWriteFont *iface, LOGFONTW *lf) diff --git a/dlls/dwrite/layout.c b/dlls/dwrite/layout.c -index b9c712cd7fb..358d13963a7 100644 +index 6f166b03f7..dcbfea7fdd 100644 --- a/dlls/dwrite/layout.c +++ b/dlls/dwrite/layout.c -@@ -5715,7 +5715,7 @@ static const IDWriteTextFormat3Vtbl dwritetextformatvtbl = +@@ -5895,7 +5895,7 @@ static const IDWriteTextFormat3Vtbl dwritetextformatvtbl = static struct dwrite_textformat *unsafe_impl_from_IDWriteTextFormat(IDWriteTextFormat *iface) { return (iface->lpVtbl == (IDWriteTextFormatVtbl*)&dwritetextformatvtbl) ? diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index a6a63898..89b10d13 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -52,7 +52,7 @@ usage() # Get the upstream commit sha upstream_commit() { - echo "2935bab96569dcd734a8e855ec9a20ae27c18973" + echo "5536df1ee1042c6cf20a7d96c43520003a547092" } # Show version information @@ -367,7 +367,6 @@ patch_enable_all () enable_ws2_32_getaddrinfo="$1" enable_ws2_32_getsockopt="$1" enable_wtsapi32_EnumerateProcesses="$1" - enable_wusa_MSU_Package_Installer="$1" } # Enable or disable a specific patchset @@ -1226,9 +1225,6 @@ patch_enable () wtsapi32-EnumerateProcesses) enable_wtsapi32_EnumerateProcesses="$2" ;; - wusa-MSU_Package_Installer) - enable_wusa_MSU_Package_Installer="$2" - ;; *) return 1 ;; @@ -7420,33 +7416,6 @@ if test "$enable_wtsapi32_EnumerateProcesses" -eq 1; then ) >> "$patchlist" fi -# Patchset wusa-MSU_Package_Installer -# | -# | This patchset fixes the following Wine bugs: -# | * [#26757] Initial implementation of wusa.exe (MSU package installer) -# | -# | Modified files: -# | * programs/wusa/Makefile.in, programs/wusa/main.c, programs/wusa/manifest.c, programs/wusa/wusa.h -# | -if test "$enable_wusa_MSU_Package_Installer" -eq 1; then - patch_apply wusa-MSU_Package_Installer/0001-wusa-Implement-basic-installation-logic.patch - patch_apply wusa-MSU_Package_Installer/0002-wusa-Ignore-systemProtection-subkey-of-registry-key.patch - patch_apply wusa-MSU_Package_Installer/0003-wusa-Treat-empty-update-list-as-error.patch - patch_apply wusa-MSU_Package_Installer/0004-wusa-Implement-WOW64-support.patch - patch_apply wusa-MSU_Package_Installer/0005-wusa-Add-workaround-to-be-compatible-with-Vista-pack.patch - patch_apply wusa-MSU_Package_Installer/0006-wusa-Improve-tracing-of-installation-process.patch - patch_apply wusa-MSU_Package_Installer/0007-wusa-Print-warning-when-encountering-msdelta-compres.patch - ( - printf '%s\n' '+ { "Michael Müller", "wusa: Implement basic installation logic.", 1 },'; - printf '%s\n' '+ { "Michael Müller", "wusa: Ignore systemProtection subkey of registry key.", 1 },'; - printf '%s\n' '+ { "Michael Müller", "wusa: Treat empty update list as error.", 1 },'; - printf '%s\n' '+ { "Michael Müller", "wusa: Implement WOW64 support.", 1 },'; - printf '%s\n' '+ { "Sebastian Lackner", "wusa: Add workaround to be compatible with Vista packages.", 1 },'; - printf '%s\n' '+ { "Sebastian Lackner", "wusa: Improve tracing of installation process.", 1 },'; - printf '%s\n' '+ { "Michael Müller", "wusa: Print warning when encountering msdelta compressed files.", 1 },'; - ) >> "$patchlist" -fi - if test "$enable_patchlist" -eq 1; then diff --git a/patches/wined3d-Indexed_Vertex_Blending/0005-wined3d-Support-indexed-vertex-blending.patch b/patches/wined3d-Indexed_Vertex_Blending/0005-wined3d-Support-indexed-vertex-blending.patch index 003eb855..502e69c3 100644 --- a/patches/wined3d-Indexed_Vertex_Blending/0005-wined3d-Support-indexed-vertex-blending.patch +++ b/patches/wined3d-Indexed_Vertex_Blending/0005-wined3d-Support-indexed-vertex-blending.patch @@ -1,4 +1,4 @@ -From 9ab80dcada9f3756c0f23d7b65d5f9cf4189318b Mon Sep 17 00:00:00 2001 +From e52551261908a60af5964a48ac0fee4210a562b3 Mon Sep 17 00:00:00 2001 From: Paul Gofman Date: Mon, 25 Feb 2019 20:28:35 +0300 Subject: [PATCH] wined3d: Support indexed vertex blending. @@ -13,10 +13,10 @@ Signed-off-by: Paul Gofman 5 files changed, 169 insertions(+), 30 deletions(-) diff --git a/dlls/d3d9/tests/visual.c b/dlls/d3d9/tests/visual.c -index 38d702b65d5..f36524da562 100644 +index a138afbcc3..e337a9bde3 100644 --- a/dlls/d3d9/tests/visual.c +++ b/dlls/d3d9/tests/visual.c -@@ -21679,7 +21679,7 @@ static void do_test_indexed_vertex_blending(IDirect3DDevice9 *device, const char +@@ -21785,7 +21785,7 @@ static void do_test_indexed_vertex_blending(IDirect3DDevice9 *device, const char ok(SUCCEEDED(hr), "Failed to get device caps, hr %#x.\n", hr); if (caps.MaxVertexBlendMatrixIndex < 7 || caps.MaxVertexBlendMatrices < 4) { @@ -25,7 +25,7 @@ index 38d702b65d5..f36524da562 100644 test_id_str, caps.MaxVertexBlendMatrices, caps.MaxVertexBlendMatrixIndex); return; } -@@ -21836,7 +21836,7 @@ static void test_indexed_vertex_blending(void) +@@ -21942,7 +21942,7 @@ static void test_indexed_vertex_blending(void) memset(&caps, 0, sizeof(caps)); hr = IDirect3DDevice9_GetDeviceCaps(device, &caps); ok(SUCCEEDED(hr), "Failed to get device caps, hr %#x.\n", hr); @@ -34,7 +34,7 @@ index 38d702b65d5..f36524da562 100644 caps.MaxVertexBlendMatrixIndex); do_test_indexed_vertex_blending(device,"IVB software"); -@@ -21862,7 +21862,7 @@ static void test_indexed_vertex_blending(void) +@@ -21968,7 +21968,7 @@ static void test_indexed_vertex_blending(void) memset(&caps, 0, sizeof(caps)); hr = IDirect3DDevice9_GetDeviceCaps(device, &caps); ok(SUCCEEDED(hr), "Failed to get device caps, hr %#x.\n", hr); @@ -44,7 +44,7 @@ index 38d702b65d5..f36524da562 100644 hr = IDirect3DDevice9_SetSoftwareVertexProcessing(device, FALSE); diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c -index af02740cab9..75548afc8ea 100644 +index 2877ac7f54..7d7cf1e152 100644 --- a/dlls/wined3d/glsl_shader.c +++ b/dlls/wined3d/glsl_shader.c @@ -150,6 +150,9 @@ struct shader_glsl_priv @@ -65,7 +65,7 @@ index af02740cab9..75548afc8ea 100644 GLint projection_matrix_location; GLint normal_matrix_location; GLint texture_matrix_location[WINED3D_MAX_TEXTURES]; -@@ -1600,10 +1604,10 @@ static void shader_glsl_load_constants(void *shader_priv, struct wined3d_context +@@ -1606,10 +1610,10 @@ static void shader_glsl_load_constants(void *shader_priv, struct wined3d_context { unsigned int base, count; @@ -78,7 +78,7 @@ index af02740cab9..75548afc8ea 100644 if (priv->ubo_vs_c == -1) { GL_EXTCALL(glGenBuffers(1, &priv->ubo_vs_c)); -@@ -1616,6 +1620,21 @@ static void shader_glsl_load_constants(void *shader_priv, struct wined3d_context +@@ -1622,6 +1626,21 @@ static void shader_glsl_load_constants(void *shader_priv, struct wined3d_context GL_EXTCALL(glBindBufferBase(GL_UNIFORM_BUFFER, base, priv->ubo_vs_c)); checkGLcall("glBindBufferBase"); } @@ -100,7 +100,7 @@ index af02740cab9..75548afc8ea 100644 ctx_data->ubo_bound = TRUE; } -@@ -1662,28 +1681,41 @@ static void shader_glsl_load_constants(void *shader_priv, struct wined3d_context +@@ -1668,28 +1687,41 @@ static void shader_glsl_load_constants(void *shader_priv, struct wined3d_context } if (update_mask & WINED3D_SHADER_CONST_FFP_MODELVIEW) @@ -156,7 +156,7 @@ index af02740cab9..75548afc8ea 100644 } } -@@ -8977,8 +9009,7 @@ static GLuint shader_glsl_generate_ffp_vertex_shader(struct shader_glsl_priv *pr +@@ -9016,8 +9048,7 @@ static GLuint shader_glsl_generate_ffp_vertex_shader(struct shader_glsl_priv *pr { {"vec4", "ffp_attrib_position"}, /* WINED3D_FFP_POSITION */ {"vec4", "ffp_attrib_blendweight"}, /* WINED3D_FFP_BLENDWEIGHT */ @@ -166,7 +166,7 @@ index af02740cab9..75548afc8ea 100644 {"vec3", "ffp_attrib_normal"}, /* WINED3D_FFP_NORMAL */ {"float", "ffp_attrib_psize"}, /* WINED3D_FFP_PSIZE */ {"vec4", "ffp_attrib_diffuse"}, /* WINED3D_FFP_DIFFUSE */ -@@ -8994,6 +9025,9 @@ static GLuint shader_glsl_generate_ffp_vertex_shader(struct shader_glsl_priv *pr +@@ -9033,6 +9064,9 @@ static GLuint shader_glsl_generate_ffp_vertex_shader(struct shader_glsl_priv *pr string_buffer_clear(buffer); shader_glsl_add_version_declaration(buffer, gl_info); @@ -176,7 +176,7 @@ index af02740cab9..75548afc8ea 100644 if (shader_glsl_use_explicit_attrib_location(gl_info)) shader_addline(buffer, "#extension GL_ARB_explicit_attrib_location : enable\n"); -@@ -9008,7 +9042,18 @@ static GLuint shader_glsl_generate_ffp_vertex_shader(struct shader_glsl_priv *pr +@@ -9047,7 +9081,18 @@ static GLuint shader_glsl_generate_ffp_vertex_shader(struct shader_glsl_priv *pr } shader_addline(buffer, "\n"); @@ -196,7 +196,7 @@ index af02740cab9..75548afc8ea 100644 shader_addline(buffer, "uniform mat4 ffp_projection_matrix;\n"); shader_addline(buffer, "uniform mat3 ffp_normal_matrix;\n"); shader_addline(buffer, "uniform mat4 ffp_texture_matrix[%u];\n", WINED3D_MAX_TEXTURES); -@@ -9070,6 +9115,8 @@ static GLuint shader_glsl_generate_ffp_vertex_shader(struct shader_glsl_priv *pr +@@ -9109,6 +9154,8 @@ static GLuint shader_glsl_generate_ffp_vertex_shader(struct shader_glsl_priv *pr shader_addline(buffer, "\nvoid main()\n{\n"); shader_addline(buffer, "float m;\n"); shader_addline(buffer, "vec3 r;\n"); @@ -205,7 +205,7 @@ index af02740cab9..75548afc8ea 100644 for (i = 0; i < ARRAY_SIZE(attrib_info); ++i) { -@@ -9099,8 +9146,21 @@ static GLuint shader_glsl_generate_ffp_vertex_shader(struct shader_glsl_priv *pr +@@ -9138,8 +9185,21 @@ static GLuint shader_glsl_generate_ffp_vertex_shader(struct shader_glsl_priv *pr shader_addline(buffer, "ffp_attrib_blendweight[%u] -= ffp_attrib_blendweight[%u];\n", settings->vertexblends, i); shader_addline(buffer, "vec4 ec_pos = vec4(0.0);\n"); @@ -229,7 +229,7 @@ index af02740cab9..75548afc8ea 100644 shader_addline(buffer, "gl_Position = ffp_projection_matrix * ec_pos;\n"); if (settings->clipping) -@@ -9124,7 +9184,19 @@ static GLuint shader_glsl_generate_ffp_vertex_shader(struct shader_glsl_priv *pr +@@ -9163,7 +9223,19 @@ static GLuint shader_glsl_generate_ffp_vertex_shader(struct shader_glsl_priv *pr else { for (i = 0; i < settings->vertexblends + 1; ++i) @@ -250,7 +250,7 @@ index af02740cab9..75548afc8ea 100644 } if (settings->normalize) -@@ -9989,6 +10061,28 @@ static void shader_glsl_init_vs_uniform_locations(const struct wined3d_gl_info * +@@ -10028,6 +10100,28 @@ static void shader_glsl_init_vs_uniform_locations(const struct wined3d_gl_info * string_buffer_sprintf(name, "ffp_modelview_matrix[%u]", i); vs->modelview_matrix_location[i] = GL_EXTCALL(glGetUniformLocation(program_id, name->buffer)); } @@ -279,7 +279,7 @@ index af02740cab9..75548afc8ea 100644 vs->projection_matrix_location = GL_EXTCALL(glGetUniformLocation(program_id, "ffp_projection_matrix")); vs->normal_matrix_location = GL_EXTCALL(glGetUniformLocation(program_id, "ffp_normal_matrix")); for (i = 0; i < WINED3D_MAX_TEXTURES; ++i) -@@ -10570,7 +10664,7 @@ static void set_glsl_shader_program(const struct wined3d_context *context, const +@@ -10607,7 +10701,7 @@ static void set_glsl_shader_program(const struct wined3d_context_gl *context_gl, entry->constant_update_mask |= WINED3D_SHADER_CONST_FFP_MODELVIEW | WINED3D_SHADER_CONST_FFP_PROJ; @@ -288,7 +288,7 @@ index af02740cab9..75548afc8ea 100644 { if (entry->vs.modelview_matrix_location[i] != -1) { -@@ -10579,6 +10673,9 @@ static void set_glsl_shader_program(const struct wined3d_context *context, const +@@ -10616,6 +10710,9 @@ static void set_glsl_shader_program(const struct wined3d_context_gl *context_gl, } } @@ -298,7 +298,7 @@ index af02740cab9..75548afc8ea 100644 for (i = 0; i < WINED3D_MAX_TEXTURES; ++i) { if (entry->vs.texture_matrix_location[i] != -1) -@@ -11117,7 +11214,17 @@ static HRESULT shader_glsl_alloc(struct wined3d_device *device, const struct win +@@ -11156,7 +11253,17 @@ static HRESULT shader_glsl_alloc(struct wined3d_device *device, const struct win fragment_pipe->get_caps(device->adapter, &fragment_caps); priv->ffp_proj_control = fragment_caps.wined3d_caps & WINED3D_FRAGMENT_CAP_PROJ_CONTROL; priv->legacy_lighting = device->wined3d->flags & WINED3D_LEGACY_FFP_LIGHTING; @@ -317,7 +317,7 @@ index af02740cab9..75548afc8ea 100644 device->vertex_priv = vertex_priv; device->fragment_priv = fragment_priv; device->shader_priv = priv; -@@ -11150,6 +11257,14 @@ static void shader_glsl_free(struct wined3d_device *device, struct wined3d_conte +@@ -11189,6 +11296,14 @@ static void shader_glsl_free(struct wined3d_device *device, struct wined3d_conte string_buffer_free(&priv->shader_buffer); priv->fragment_pipe->free_private(device, context); priv->vertex_pipe->vp_free(device, context); @@ -332,7 +332,7 @@ index af02740cab9..75548afc8ea 100644 if (priv->ubo_vs_c != -1) { -@@ -11569,7 +11684,11 @@ static void glsl_vertex_pipe_vp_get_caps(const struct wined3d_adapter *adapter, +@@ -11613,7 +11728,11 @@ static void glsl_vertex_pipe_vp_get_caps(const struct wined3d_adapter *adapter, caps->ffp_generic_attributes = TRUE; caps->max_active_lights = WINED3D_MAX_ACTIVE_LIGHTS; caps->max_vertex_blend_matrices = MAX_VERTEX_BLENDS; @@ -345,7 +345,7 @@ index af02740cab9..75548afc8ea 100644 caps->vertex_processing_caps = WINED3DVTXPCAPS_TEXGEN | WINED3DVTXPCAPS_MATERIALSOURCE7 | WINED3DVTXPCAPS_VERTEXFOG -@@ -11769,7 +11888,8 @@ static void glsl_vertex_pipe_pixel_shader(struct wined3d_context *context, +@@ -11815,7 +11934,8 @@ static void glsl_vertex_pipe_pixel_shader(struct wined3d_context *context, static void glsl_vertex_pipe_world(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id) { @@ -356,10 +356,10 @@ index af02740cab9..75548afc8ea 100644 static void glsl_vertex_pipe_vertexblend(struct wined3d_context *context, diff --git a/dlls/wined3d/utils.c b/dlls/wined3d/utils.c -index 9f033936666..5509afd769f 100644 +index 2d7f3d0d4c..95e83dba7f 100644 --- a/dlls/wined3d/utils.c +++ b/dlls/wined3d/utils.c -@@ -6501,6 +6501,7 @@ void wined3d_ffp_get_vs_settings(const struct wined3d_context *context, +@@ -6556,6 +6556,7 @@ void wined3d_ffp_get_vs_settings(const struct wined3d_context *context, settings->flatshading = FALSE; settings->swizzle_map = si->swizzle_map; @@ -368,7 +368,7 @@ index 9f033936666..5509afd769f 100644 int wined3d_ffp_vertex_program_key_compare(const void *key, const struct wine_rb_entry *entry) diff --git a/dlls/wined3d/vertexdeclaration.c b/dlls/wined3d/vertexdeclaration.c -index cd8bb5e4233..d37f3ce8606 100644 +index 81032745a0..e91409f452 100644 --- a/dlls/wined3d/vertexdeclaration.c +++ b/dlls/wined3d/vertexdeclaration.c @@ -119,6 +119,15 @@ static BOOL declaration_element_valid_ffp(const struct wined3d_vertex_element *e @@ -388,18 +388,18 @@ index cd8bb5e4233..d37f3ce8606 100644 switch(element->format) { diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h -index 51520919644..8469ae8aa29 100644 +index 6b974b99a9..936f71eabc 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h -@@ -268,6 +268,7 @@ static inline enum complex_fixup get_complex_fixup(struct color_fixup_desc fixup +@@ -275,6 +275,7 @@ static inline enum complex_fixup get_complex_fixup(struct color_fixup_desc fixup } /* Device caps */ +#define MAX_VERTEX_BLEND_UBO 256 - #define WINED3D_MAX_STREAMS 16 - #define WINED3D_MAX_TEXTURES 8 - #define WINED3D_MAX_FRAGMENT_SAMPLERS 16 -@@ -2965,7 +2966,8 @@ struct wined3d_ffp_vs_settings + #define WINED3D_MAX_ACTIVE_LIGHTS 8 + #define WINED3D_MAX_SOFTWARE_ACTIVE_LIGHTS 32 + #define MAX_CONSTANT_BUFFERS 15 +@@ -3060,7 +3061,8 @@ struct wined3d_ffp_vs_settings DWORD ortho_fog : 1; DWORD flatshading : 1; DWORD swizzle_map : 16; /* MAX_ATTRIBS, 16 */ @@ -409,7 +409,7 @@ index 51520919644..8469ae8aa29 100644 DWORD texgen[WINED3D_MAX_TEXTURES]; }; -@@ -4913,6 +4915,13 @@ static inline void wined3d_not_from_cs(struct wined3d_cs *cs) +@@ -5165,6 +5167,13 @@ static inline void wined3d_not_from_cs(struct wined3d_cs *cs) assert(cs->thread_id != GetCurrentThreadId()); } @@ -424,5 +424,5 @@ index 51520919644..8469ae8aa29 100644 enum wined3d_material_color_source source) { -- -2.20.1 +2.23.0 diff --git a/patches/wined3d-SWVP-shaders/0003-wined3d-Report-actual-vertex-shader-float-constants-.patch b/patches/wined3d-SWVP-shaders/0003-wined3d-Report-actual-vertex-shader-float-constants-.patch index 878cbdd1..21d0d45a 100644 --- a/patches/wined3d-SWVP-shaders/0003-wined3d-Report-actual-vertex-shader-float-constants-.patch +++ b/patches/wined3d-SWVP-shaders/0003-wined3d-Report-actual-vertex-shader-float-constants-.patch @@ -1,4 +1,4 @@ -From e8d51b8f26794008482b614e48f3af1816d2e827 Mon Sep 17 00:00:00 2001 +From 24b372e4dd0c5323668d3355d1f25301c988d6a1 Mon Sep 17 00:00:00 2001 From: Paul Gofman Date: Mon, 25 Feb 2019 14:47:28 +0300 Subject: [PATCH 3/5] wined3d: Report actual vertex shader float constants @@ -9,14 +9,15 @@ Signed-off-by: Paul Gofman dlls/wined3d/adapter_gl.c | 3 ++- dlls/wined3d/device.c | 13 ++++++++++++- dlls/wined3d/glsl_shader.c | 5 ++++- - dlls/wined3d/wined3d_private.h | 2 ++ - 4 files changed, 20 insertions(+), 3 deletions(-) + dlls/wined3d/wined3d_private.h | 1 + + include/wine/wined3d.h | 1 + + 5 files changed, 20 insertions(+), 3 deletions(-) diff --git a/dlls/wined3d/adapter_gl.c b/dlls/wined3d/adapter_gl.c -index 57eb73a121..b1308f662b 100644 +index 82c8270e66..62d147b90f 100644 --- a/dlls/wined3d/adapter_gl.c +++ b/dlls/wined3d/adapter_gl.c -@@ -5152,7 +5152,8 @@ static void wined3d_adapter_gl_init_d3d_info(struct wined3d_adapter_gl *adapter_ +@@ -5186,7 +5186,8 @@ static void wined3d_adapter_gl_init_d3d_info(struct wined3d_adapter_gl *adapter_ d3d_info->limits.gs_version = shader_caps.gs_version; d3d_info->limits.ps_version = shader_caps.ps_version; d3d_info->limits.cs_version = shader_caps.cs_version; @@ -27,10 +28,10 @@ index 57eb73a121..b1308f662b 100644 d3d_info->limits.varying_count = shader_caps.varying_count; d3d_info->limits.ffp_textures = fragment_caps.MaxSimultaneousTextures; diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c -index 9b1b630014..cd078435c8 100644 +index b0695547e1..9d3f3dc00f 100644 --- a/dlls/wined3d/device.c +++ b/dlls/wined3d/device.c -@@ -4050,10 +4050,21 @@ struct wined3d_texture * CDECL wined3d_device_get_texture(const struct wined3d_d +@@ -3855,10 +3855,21 @@ struct wined3d_texture * CDECL wined3d_device_get_texture(const struct wined3d_d HRESULT CDECL wined3d_device_get_device_caps(const struct wined3d_device *device, struct wined3d_caps *caps) { @@ -54,10 +55,10 @@ index 9b1b630014..cd078435c8 100644 HRESULT CDECL wined3d_device_get_display_mode(const struct wined3d_device *device, UINT swapchain_idx, diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c -index 3c705e0730..021b275fbc 100644 +index 9e367eef15..bcb1fd98fa 100644 --- a/dlls/wined3d/glsl_shader.c +++ b/dlls/wined3d/glsl_shader.c -@@ -11219,7 +11219,10 @@ static void shader_glsl_get_caps(const struct wined3d_adapter *adapter, struct s +@@ -11241,7 +11241,10 @@ static void shader_glsl_get_caps(const struct wined3d_adapter *adapter, struct s caps->vs_version = gl_info->supported[ARB_VERTEX_SHADER] ? caps->vs_version : 0; caps->ps_version = gl_info->supported[ARB_FRAGMENT_SHADER] ? caps->ps_version : 0; @@ -70,7 +71,7 @@ index 3c705e0730..021b275fbc 100644 caps->varying_count = gl_info->limits.glsl_varyings; diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h -index a76103f6df..769040ea20 100644 +index 49cc894c25..540e56d9f9 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h @@ -167,6 +167,7 @@ struct wined3d_d3d_limits @@ -81,14 +82,18 @@ index a76103f6df..769040ea20 100644 DWORD ps_uniform_count; unsigned int varying_count; unsigned int ffp_textures; -@@ -702,6 +703,7 @@ enum wined3d_shader_conditional_op - #define WINED3D_MAX_CONSTS_B 16 - #define WINED3D_MAX_CONSTS_I 16 - #define WINED3D_MAX_VS_CONSTS_F 256 -+#define WINED3D_MAX_VS_CONSTS_F_SWVP 8192 - #define WINED3D_MAX_PS_CONSTS_F 224 +diff --git a/include/wine/wined3d.h b/include/wine/wined3d.h +index fc62750480..d55719e961 100644 +--- a/include/wine/wined3d.h ++++ b/include/wine/wined3d.h +@@ -1602,6 +1602,7 @@ enum wined3d_shader_type + #define WINED3D_MAX_CONSTS_I 16 + #define WINED3D_MAX_VS_CONSTS_F 256 + #define WINED3D_MAX_PS_CONSTS_F 224 ++#define WINED3D_MAX_VS_CONSTS_F_SWVP 8192 - /* FIXME: This needs to go up to 2048 for + struct wined3d_display_mode + { -- -2.21.0 +2.23.0 diff --git a/patches/wined3d-SWVP-shaders/0004-wined3d-Support-SWVP-vertex-shader-constants-limit-i.patch b/patches/wined3d-SWVP-shaders/0004-wined3d-Support-SWVP-vertex-shader-constants-limit-i.patch index 6e269080..099e0648 100644 --- a/patches/wined3d-SWVP-shaders/0004-wined3d-Support-SWVP-vertex-shader-constants-limit-i.patch +++ b/patches/wined3d-SWVP-shaders/0004-wined3d-Support-SWVP-vertex-shader-constants-limit-i.patch @@ -1,8 +1,8 @@ -From 2b388131f69ba58661d226e9ea1316c3c554ad75 Mon Sep 17 00:00:00 2001 +From 3ee1f4691e18588fe0c7909d7cffbb5ec73c5738 Mon Sep 17 00:00:00 2001 From: Paul Gofman Date: Mon, 25 Feb 2019 15:05:12 +0300 -Subject: [PATCH] wined3d: Support SWVP vertex shader constants limit in state - tracking. +Subject: [PATCH 4/5] wined3d: Support SWVP vertex shader constants limit in + state tracking. Signed-off-by: Paul Gofman --- @@ -11,11 +11,12 @@ Signed-off-by: Paul Gofman dlls/wined3d/device.c | 16 ++++++++++++---- dlls/wined3d/glsl_shader.c | 2 +- dlls/wined3d/stateblock.c | 15 +++++++++++---- - dlls/wined3d/wined3d_private.h | 8 ++++---- - 6 files changed, 28 insertions(+), 19 deletions(-) + dlls/wined3d/wined3d_private.h | 6 +++--- + include/wine/wined3d.h | 2 +- + 7 files changed, 28 insertions(+), 19 deletions(-) diff --git a/dlls/d3d9/tests/device.c b/dlls/d3d9/tests/device.c -index 3ec5128667f..c1fa73bd7a9 100644 +index 3ec5128667..c1fa73bd7a 100644 --- a/dlls/d3d9/tests/device.c +++ b/dlls/d3d9/tests/device.c @@ -6411,13 +6411,10 @@ static void test_vertex_shader_constant(void) @@ -49,10 +50,10 @@ index 3ec5128667f..c1fa73bd7a9 100644 hr = IDirect3DDevice9_SetVertexShaderConstantF(device, consts_swvp - 1, c, 1); ok(hr == D3D_OK, "Got unexpected hr %#x.\n", hr); diff --git a/dlls/d3d9/tests/visual.c b/dlls/d3d9/tests/visual.c -index 1c93b6c4426..8d0f37ff97d 100644 +index 6a6523aa1d..ec15e4148d 100644 --- a/dlls/d3d9/tests/visual.c +++ b/dlls/d3d9/tests/visual.c -@@ -24797,7 +24797,6 @@ static void test_mvp_software_vertex_shaders(void) +@@ -24817,7 +24817,6 @@ static void test_mvp_software_vertex_shaders(void) hr = IDirect3DDevice9_SetVertexShaderConstantF(device, 0, c_index, 1); ok(SUCCEEDED(hr), "Got unexpected hr %#x.\n", hr); hr = IDirect3DDevice9_SetVertexShaderConstantF(device, (unsigned int)c_index[0], c_color, 1); @@ -61,7 +62,7 @@ index 1c93b6c4426..8d0f37ff97d 100644 hr = IDirect3DDevice9_BeginScene(device); diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c -index 9d3f3dc00fc..d61dee3a918 100644 +index 9d3f3dc00f..d61dee3a91 100644 --- a/dlls/wined3d/device.c +++ b/dlls/wined3d/device.c @@ -2290,13 +2290,17 @@ HRESULT CDECL wined3d_device_set_vs_consts_f(struct wined3d_device *device, @@ -104,7 +105,7 @@ index 9d3f3dc00fc..d61dee3a918 100644 memcpy(constants, &device->state.vs_consts_f[start_idx], count * sizeof(*constants)); diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c -index bcb1fd98fa5..879edacff7f 100644 +index bcb1fd98fa..879edacff7 100644 --- a/dlls/wined3d/glsl_shader.c +++ b/dlls/wined3d/glsl_shader.c @@ -1911,7 +1911,7 @@ static void shader_glsl_update_float_vertex_constants(struct wined3d_device *dev @@ -117,7 +118,7 @@ index bcb1fd98fa5..879edacff7f 100644 update_heap_entry(heap, i, priv->next_constant_version); } diff --git a/dlls/wined3d/stateblock.c b/dlls/wined3d/stateblock.c -index 1c3704c10a5..153dc25182a 100644 +index 1a0ba0a3d5..65b5df7b34 100644 --- a/dlls/wined3d/stateblock.c +++ b/dlls/wined3d/stateblock.c @@ -312,7 +312,7 @@ void CDECL wined3d_stateblock_init_contained_states(struct wined3d_stateblock *s @@ -148,18 +149,18 @@ index 1c3704c10a5..153dc25182a 100644 return WINED3DERR_INVALIDCALL; memcpy(&stateblock->stateblock_state.vs_consts_f[start_idx], constants, count * sizeof(*constants)); -@@ -2014,7 +2021,7 @@ static HRESULT stateblock_init(struct wined3d_stateblock *stateblock, const stru - stateblock_init_lights(stateblock->stateblock_state.light_state.light_map, - device_state->stateblock_state.light_state.light_map); +@@ -2019,7 +2026,7 @@ static HRESULT stateblock_init(struct wined3d_stateblock *stateblock, const stru + stateblock_init_lights(stateblock->stateblock_state.light_state->light_map, + device_state->stateblock_state.light_state->light_map); stateblock_savedstates_set_all(&stateblock->changed, - d3d_info->limits.vs_uniform_count, d3d_info->limits.ps_uniform_count); + d3d_info->limits.vs_uniform_count_swvp, d3d_info->limits.ps_uniform_count); break; case WINED3D_SBT_PIXEL_STATE: -@@ -2026,7 +2033,7 @@ static HRESULT stateblock_init(struct wined3d_stateblock *stateblock, const stru - stateblock_init_lights(stateblock->stateblock_state.light_state.light_map, - device_state->stateblock_state.light_state.light_map); +@@ -2031,7 +2038,7 @@ static HRESULT stateblock_init(struct wined3d_stateblock *stateblock, const stru + stateblock_init_lights(stateblock->stateblock_state.light_state->light_map, + device_state->stateblock_state.light_state->light_map); stateblock_savedstates_set_vertex(&stateblock->changed, - d3d_info->limits.vs_uniform_count); + d3d_info->limits.vs_uniform_count_swvp); @@ -167,10 +168,10 @@ index 1c3704c10a5..153dc25182a 100644 default: diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h -index d0dd718060b..cbbbce65cb4 100644 +index 540e56d9f9..2588900daa 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h -@@ -3177,7 +3177,7 @@ struct wined3d_state +@@ -3156,7 +3156,7 @@ struct wined3d_state BOOL vs_consts_b[WINED3D_MAX_CONSTS_B]; struct wined3d_ivec4 vs_consts_i[WINED3D_MAX_CONSTS_I]; @@ -179,16 +180,7 @@ index d0dd718060b..cbbbce65cb4 100644 BOOL ps_consts_b[WINED3D_MAX_CONSTS_B]; struct wined3d_ivec4 ps_consts_i[WINED3D_MAX_CONSTS_I]; -@@ -3249,7 +3249,7 @@ struct wined3d_stateblock_state - int base_vertex_index; - - struct wined3d_shader *vs; -- struct wined3d_vec4 vs_consts_f[WINED3D_MAX_VS_CONSTS_F]; -+ struct wined3d_vec4 vs_consts_f[WINED3D_MAX_VS_CONSTS_F_SWVP]; - struct wined3d_ivec4 vs_consts_i[WINED3D_MAX_CONSTS_I]; - BOOL vs_consts_b[WINED3D_MAX_CONSTS_B]; - -@@ -3946,7 +3946,7 @@ struct wined3d_saved_states +@@ -3891,7 +3891,7 @@ struct wined3d_saved_states BOOL ps_consts_f[WINED3D_MAX_PS_CONSTS_F]; WORD vertexShaderConstantsB; /* WINED3D_MAX_CONSTS_B, 16 */ WORD vertexShaderConstantsI; /* WINED3D_MAX_CONSTS_I, 16 */ @@ -197,7 +189,7 @@ index d0dd718060b..cbbbce65cb4 100644 DWORD textures : 20; /* WINED3D_MAX_COMBINED_SAMPLERS, 20 */ DWORD indices : 1; DWORD material : 1; -@@ -3983,7 +3983,7 @@ struct wined3d_stateblock +@@ -3930,7 +3930,7 @@ struct wined3d_stateblock unsigned int num_contained_vs_consts_i; DWORD contained_vs_consts_b[WINED3D_MAX_CONSTS_B]; unsigned int num_contained_vs_consts_b; @@ -206,6 +198,19 @@ index d0dd718060b..cbbbce65cb4 100644 unsigned int num_contained_vs_consts_f; DWORD contained_ps_consts_i[WINED3D_MAX_CONSTS_I]; unsigned int num_contained_ps_consts_i; +diff --git a/include/wine/wined3d.h b/include/wine/wined3d.h +index d55719e961..73015bb062 100644 +--- a/include/wine/wined3d.h ++++ b/include/wine/wined3d.h +@@ -2152,7 +2152,7 @@ struct wined3d_stateblock_state + int base_vertex_index; + + struct wined3d_shader *vs; +- struct wined3d_vec4 vs_consts_f[WINED3D_MAX_VS_CONSTS_F]; ++ struct wined3d_vec4 vs_consts_f[WINED3D_MAX_VS_CONSTS_F_SWVP]; + struct wined3d_ivec4 vs_consts_i[WINED3D_MAX_CONSTS_I]; + BOOL vs_consts_b[WINED3D_MAX_CONSTS_B]; + -- -2.24.0 +2.23.0 diff --git a/patches/wined3d-Silence_FIXMEs/0006-wined3d-Silence-extremely-noisy-FIXME-in-wined3d_tex.patch b/patches/wined3d-Silence_FIXMEs/0006-wined3d-Silence-extremely-noisy-FIXME-in-wined3d_tex.patch index 1cc6b699..ce3be3a6 100644 --- a/patches/wined3d-Silence_FIXMEs/0006-wined3d-Silence-extremely-noisy-FIXME-in-wined3d_tex.patch +++ b/patches/wined3d-Silence_FIXMEs/0006-wined3d-Silence-extremely-noisy-FIXME-in-wined3d_tex.patch @@ -1,7 +1,7 @@ -From c91507431e6dc246386277821a0ba4a3719d0a36 Mon Sep 17 00:00:00 2001 +From bf91daf7caca1f40a645308c3d9e6bb255aba120 Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Mon, 21 Mar 2016 18:27:59 +0100 -Subject: wined3d: Silence extremely noisy FIXME in +Subject: [PATCH] wined3d: Silence extremely noisy FIXME in wined3d_texture_add_dirty_region. --- @@ -9,18 +9,18 @@ Subject: wined3d: Silence extremely noisy FIXME in 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c -index 2419616731..6e0ff4be4d 100644 +index 57416a67de..414b6ff12f 100644 --- a/dlls/wined3d/texture.c +++ b/dlls/wined3d/texture.c -@@ -1648,7 +1648,7 @@ HRESULT CDECL wined3d_texture_add_dirty_region(struct wined3d_texture *texture, - } - - if (dirty_region) +@@ -1844,7 +1844,7 @@ HRESULT CDECL wined3d_texture_add_dirty_region(struct wined3d_texture *texture, + WARN("Invalid dirty_region %s specified.\n", debug_box(dirty_region)); + return WINED3DERR_INVALIDCALL; + } - FIXME("Ignoring dirty_region %s.\n", debug_box(dirty_region)); + WARN("Ignoring dirty_region %s.\n", debug_box(dirty_region)); + } wined3d_cs_emit_add_dirty_texture_region(texture->resource.device->cs, texture, layer); - -- -2.11.0 +2.23.0 diff --git a/patches/wusa-MSU_Package_Installer/definition b/patches/wusa-MSU_Package_Installer/definition index 21ed4c82..9d51931b 100644 --- a/patches/wusa-MSU_Package_Installer/definition +++ b/patches/wusa-MSU_Package_Installer/definition @@ -1 +1,3 @@ Fixes: [26757] Initial implementation of wusa.exe (MSU package installer) +Disabled: True +