Rebase against 5536df1ee1042c6cf20a7d96c43520003a547092

This commit is contained in:
Paul Gofman 2019-12-03 03:43:30 +03:00
parent 9be789b289
commit 2f95fb4782
7 changed files with 112 additions and 131 deletions

View File

@ -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 <sebastian@fds-team.de>
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) ?

View File

@ -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

View File

@ -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 <gofmanp@gmail.com>
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 <gofmanp@gmail.com>
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

View File

@ -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 <gofmanp@gmail.com>
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 <gofmanp@gmail.com>
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

View File

@ -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 <gofmanp@gmail.com>
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 <gofmanp@gmail.com>
---
@ -11,11 +11,12 @@ Signed-off-by: Paul Gofman <gofmanp@gmail.com>
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

View File

@ -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 <sebastian@fds-team.de>
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

View File

@ -1 +1,3 @@
Fixes: [26757] Initial implementation of wusa.exe (MSU package installer)
Disabled: True