[PATCH v2 1/6] wined3d: Fix querying texture-related limits on core profile.
Matteo Bruni
mbruni at codeweavers.com
Tue Feb 7 15:08:39 CST 2017
Signed-off-by: Matteo Bruni <mbruni at codeweavers.com>
---
v2: Move texture_coords-related code into the legacy context "if".
dlls/wined3d/directx.c | 27 +++++++++++++++++++--------
1 file changed, 19 insertions(+), 8 deletions(-)
diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c
index c47052c..bfb018e 100644
--- a/dlls/wined3d/directx.c
+++ b/dlls/wined3d/directx.c
@@ -3405,24 +3405,35 @@ static void wined3d_adapter_init_limits(struct wined3d_gl_info *gl_info)
}
if (gl_info->supported[ARB_MULTITEXTURE])
{
- gl_info->gl_ops.gl.p_glGetIntegerv(GL_MAX_TEXTURE_UNITS_ARB, &gl_max);
- gl_info->limits.textures = min(MAX_TEXTURES, gl_max);
- TRACE("Max textures: %d.\n", gl_info->limits.textures);
+ if (gl_info->supported[WINED3D_GL_LEGACY_CONTEXT])
+ {
+ gl_info->gl_ops.gl.p_glGetIntegerv(GL_MAX_TEXTURE_UNITS_ARB, &gl_max);
+ gl_info->limits.textures = min(MAX_TEXTURES, gl_max);
+ TRACE("Max textures: %d.\n", gl_info->limits.textures);
- if (gl_info->supported[ARB_FRAGMENT_PROGRAM])
+ if (gl_info->supported[ARB_FRAGMENT_PROGRAM])
+ {
+ gl_info->gl_ops.gl.p_glGetIntegerv(GL_MAX_TEXTURE_COORDS_ARB, &gl_max);
+ gl_info->limits.texture_coords = min(MAX_TEXTURES, gl_max);
+ }
+ else
+ {
+ gl_info->limits.texture_coords = max(gl_info->limits.texture_coords, gl_max);
+ }
+ TRACE("Max texture coords: %d.\n", gl_info->limits.texture_coords);
+ }
+
+ if (gl_info->supported[ARB_FRAGMENT_PROGRAM] || gl_info->supported[ARB_FRAGMENT_SHADER])
{
GLint tmp;
- gl_info->gl_ops.gl.p_glGetIntegerv(GL_MAX_TEXTURE_COORDS_ARB, &gl_max);
- gl_info->limits.texture_coords = min(MAX_TEXTURES, gl_max);
+
gl_info->gl_ops.gl.p_glGetIntegerv(GL_MAX_TEXTURE_IMAGE_UNITS_ARB, &tmp);
gl_info->limits.fragment_samplers = min(MAX_FRAGMENT_SAMPLERS, tmp);
}
else
{
- gl_info->limits.texture_coords = max(gl_info->limits.texture_coords, gl_max);
gl_info->limits.fragment_samplers = max(gl_info->limits.fragment_samplers, gl_max);
}
- TRACE("Max texture coords: %d.\n", gl_info->limits.texture_coords);
TRACE("Max fragment samplers: %d.\n", gl_info->limits.fragment_samplers);
if (gl_info->supported[ARB_VERTEX_SHADER])
--
2.10.2
More information about the wine-patches
mailing list