st/mesa: don't return an error from update_single_texture
It can just return a NULL sampler view, which is better than not doing anything at all. Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
This commit is contained in:
@@ -55,7 +55,7 @@
|
|||||||
/**
|
/**
|
||||||
* Get a pipe_sampler_view object from a texture unit.
|
* Get a pipe_sampler_view object from a texture unit.
|
||||||
*/
|
*/
|
||||||
GLboolean
|
void
|
||||||
st_update_single_texture(struct st_context *st,
|
st_update_single_texture(struct st_context *st,
|
||||||
struct pipe_sampler_view **sampler_view,
|
struct pipe_sampler_view **sampler_view,
|
||||||
GLuint texUnit, unsigned glsl_version)
|
GLuint texUnit, unsigned glsl_version)
|
||||||
@@ -76,7 +76,8 @@ st_update_single_texture(struct st_context *st,
|
|||||||
retval = st_finalize_texture(ctx, st->pipe, texObj, 0);
|
retval = st_finalize_texture(ctx, st->pipe, texObj, 0);
|
||||||
if (!retval) {
|
if (!retval) {
|
||||||
/* out of mem */
|
/* out of mem */
|
||||||
return GL_FALSE;
|
*sampler_view = NULL;
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Check a few pieces of state outside the texture object to see if we
|
/* Check a few pieces of state outside the texture object to see if we
|
||||||
@@ -97,7 +98,6 @@ st_update_single_texture(struct st_context *st,
|
|||||||
|
|
||||||
*sampler_view =
|
*sampler_view =
|
||||||
st_get_texture_sampler_view_from_stobj(st, stObj, samp, glsl_version);
|
st_get_texture_sampler_view_from_stobj(st, stObj, samp, glsl_version);
|
||||||
return GL_TRUE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -129,13 +129,8 @@ update_textures(struct st_context *st,
|
|||||||
/* prog->sh.data is NULL if it's ARB_fragment_program */
|
/* prog->sh.data is NULL if it's ARB_fragment_program */
|
||||||
unsigned glsl_version = prog->sh.data ? prog->sh.data->Version : 0;
|
unsigned glsl_version = prog->sh.data ? prog->sh.data->Version : 0;
|
||||||
const GLuint texUnit = prog->SamplerUnits[unit];
|
const GLuint texUnit = prog->SamplerUnits[unit];
|
||||||
GLboolean retval;
|
|
||||||
|
|
||||||
retval = st_update_single_texture(st, &sampler_view, texUnit,
|
|
||||||
glsl_version);
|
|
||||||
if (retval == GL_FALSE)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
|
st_update_single_texture(st, &sampler_view, texUnit, glsl_version);
|
||||||
num_textures = unit + 1;
|
num_textures = unit + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -512,7 +512,8 @@ st_create_texture_handle_from_unit(struct st_context *st,
|
|||||||
struct pipe_sampler_view *view;
|
struct pipe_sampler_view *view;
|
||||||
struct pipe_sampler_state sampler = {0};
|
struct pipe_sampler_state sampler = {0};
|
||||||
|
|
||||||
if (!st_update_single_texture(st, &view, texUnit, prog->sh.data->Version))
|
st_update_single_texture(st, &view, texUnit, prog->sh.data->Version);
|
||||||
|
if (!view)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if (view->target != PIPE_BUFFER)
|
if (view->target != PIPE_BUFFER)
|
||||||
|
@@ -288,7 +288,7 @@ st_convert_sampler_from_unit(const struct st_context *st,
|
|||||||
struct pipe_sampler_state *sampler,
|
struct pipe_sampler_state *sampler,
|
||||||
GLuint texUnit);
|
GLuint texUnit);
|
||||||
|
|
||||||
GLboolean
|
void
|
||||||
st_update_single_texture(struct st_context *st,
|
st_update_single_texture(struct st_context *st,
|
||||||
struct pipe_sampler_view **sampler_view,
|
struct pipe_sampler_view **sampler_view,
|
||||||
GLuint texUnit, unsigned glsl_version);
|
GLuint texUnit, unsigned glsl_version);
|
||||||
|
Reference in New Issue
Block a user