wined3d: Explicitly bind frag data location for fragment shader outputs.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com> Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
f9f75d251a
commit
9ddc01e0c1
|
@ -3172,6 +3172,7 @@ static void load_gl_funcs(struct wined3d_gl_info *gl_info)
|
||||||
USE_GL_FUNC(glBeginTransformFeedback) /* OpenGL 3.0 */
|
USE_GL_FUNC(glBeginTransformFeedback) /* OpenGL 3.0 */
|
||||||
USE_GL_FUNC(glBindAttribLocation) /* OpenGL 2.0 */
|
USE_GL_FUNC(glBindAttribLocation) /* OpenGL 2.0 */
|
||||||
USE_GL_FUNC(glBindBuffer) /* OpenGL 1.5 */
|
USE_GL_FUNC(glBindBuffer) /* OpenGL 1.5 */
|
||||||
|
USE_GL_FUNC(glBindFragDataLocation) /* OpenGL 3.0 */
|
||||||
USE_GL_FUNC(glBindVertexArray) /* OpenGL 3.0 */
|
USE_GL_FUNC(glBindVertexArray) /* OpenGL 3.0 */
|
||||||
USE_GL_FUNC(glBlendColor) /* OpenGL 1.4 */
|
USE_GL_FUNC(glBlendColor) /* OpenGL 1.4 */
|
||||||
USE_GL_FUNC(glBlendEquation) /* OpenGL 1.4 */
|
USE_GL_FUNC(glBlendEquation) /* OpenGL 1.4 */
|
||||||
|
@ -3305,6 +3306,7 @@ static void load_gl_funcs(struct wined3d_gl_info *gl_info)
|
||||||
MAP_GL_FUNCTION(glBeginQuery, glBeginQueryARB);
|
MAP_GL_FUNCTION(glBeginQuery, glBeginQueryARB);
|
||||||
MAP_GL_FUNCTION(glBindAttribLocation, glBindAttribLocationARB);
|
MAP_GL_FUNCTION(glBindAttribLocation, glBindAttribLocationARB);
|
||||||
MAP_GL_FUNCTION(glBindBuffer, glBindBufferARB);
|
MAP_GL_FUNCTION(glBindBuffer, glBindBufferARB);
|
||||||
|
MAP_GL_FUNCTION(glBindFragDataLocation, glBindFragDataLocationEXT);
|
||||||
MAP_GL_FUNCTION(glBlendColor, glBlendColorEXT);
|
MAP_GL_FUNCTION(glBlendColor, glBlendColorEXT);
|
||||||
MAP_GL_FUNCTION(glBlendEquation, glBlendEquationEXT);
|
MAP_GL_FUNCTION(glBlendEquation, glBlendEquationEXT);
|
||||||
MAP_GL_FUNCTION(glBlendEquationSeparate, glBlendEquationSeparateEXT);
|
MAP_GL_FUNCTION(glBlendEquationSeparate, glBlendEquationSeparateEXT);
|
||||||
|
|
|
@ -9254,7 +9254,7 @@ static void set_glsl_shader_program(const struct wined3d_context *context, const
|
||||||
{
|
{
|
||||||
/* Bind vertex attributes to a corresponding index number to match
|
/* Bind vertex attributes to a corresponding index number to match
|
||||||
* the same index numbers as ARB_vertex_programs (makes loading
|
* the same index numbers as ARB_vertex_programs (makes loading
|
||||||
* vertex attributes simpler). With this method, we can use the
|
* vertex attributes simpler). With this method, we can use the
|
||||||
* exact same code to load the attributes later for both ARB and
|
* exact same code to load the attributes later for both ARB and
|
||||||
* GLSL shaders.
|
* GLSL shaders.
|
||||||
*
|
*
|
||||||
|
@ -9279,6 +9279,12 @@ static void set_glsl_shader_program(const struct wined3d_context *context, const
|
||||||
}
|
}
|
||||||
checkGLcall("glBindAttribLocation");
|
checkGLcall("glBindAttribLocation");
|
||||||
string_buffer_release(&priv->string_buffers, tmp_name);
|
string_buffer_release(&priv->string_buffers, tmp_name);
|
||||||
|
|
||||||
|
if (!needs_legacy_glsl_syntax(gl_info))
|
||||||
|
{
|
||||||
|
GL_EXTCALL(glBindFragDataLocation(program_id, 0, "ps_out"));
|
||||||
|
checkGLcall("glBindFragDataLocation");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (gshader)
|
if (gshader)
|
||||||
|
|
Loading…
Reference in New Issue