You've already forked wine-staging
mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2025-09-12 18:50:20 -07:00
Rebase against 5536df1ee1042c6cf20a7d96c43520003a547092
This commit is contained in:
@@ -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
|
||||
|
||||
|
@@ -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
|
||||
|
||||
|
Reference in New Issue
Block a user