i965: Add asserts to check that we don't realloc ParameterValues.
Things are even more restrictive than they used to be, so I've made mistakes in this area. Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
parent
ffdfafb06c
commit
d5efc14635
|
@ -2454,6 +2454,7 @@ fs_visitor::setup_payload_gen6()
|
||||||
bool
|
bool
|
||||||
fs_visitor::run()
|
fs_visitor::run()
|
||||||
{
|
{
|
||||||
|
sanity_param_count = fp->Base.Parameters->NumParameters;
|
||||||
uint32_t orig_nr_params = c->prog_data.nr_params;
|
uint32_t orig_nr_params = c->prog_data.nr_params;
|
||||||
|
|
||||||
if (intel->gen >= 6)
|
if (intel->gen >= 6)
|
||||||
|
@ -2567,6 +2568,13 @@ fs_visitor::run()
|
||||||
(void) orig_nr_params;
|
(void) orig_nr_params;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* If any state parameters were appended, then ParameterValues could have
|
||||||
|
* been realloced, in which case the driver uniform storage set up by
|
||||||
|
* _mesa_associate_uniform_storage() would point to freed memory. Make
|
||||||
|
* sure that didn't happen.
|
||||||
|
*/
|
||||||
|
assert(sanity_param_count == fp->Base.Parameters->NumParameters);
|
||||||
|
|
||||||
return !failed;
|
return !failed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -417,6 +417,7 @@ public:
|
||||||
|
|
||||||
const struct gl_fragment_program *fp;
|
const struct gl_fragment_program *fp;
|
||||||
struct brw_wm_compile *c;
|
struct brw_wm_compile *c;
|
||||||
|
unsigned int sanity_param_count;
|
||||||
|
|
||||||
/* Delayed setup of c->prog_data.params[] due to realloc of
|
/* Delayed setup of c->prog_data.params[] due to realloc of
|
||||||
* ParamValues[] during compile.
|
* ParamValues[] during compile.
|
||||||
|
|
|
@ -1239,6 +1239,8 @@ vec4_visitor::emit_shader_time_write(enum shader_time_shader_type type,
|
||||||
bool
|
bool
|
||||||
vec4_visitor::run()
|
vec4_visitor::run()
|
||||||
{
|
{
|
||||||
|
sanity_param_count = vp->Base.Parameters->NumParameters;
|
||||||
|
|
||||||
if (INTEL_DEBUG & DEBUG_SHADER_TIME)
|
if (INTEL_DEBUG & DEBUG_SHADER_TIME)
|
||||||
emit_shader_time_begin();
|
emit_shader_time_begin();
|
||||||
|
|
||||||
|
@ -1317,6 +1319,13 @@ vec4_visitor::run()
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* If any state parameters were appended, then ParameterValues could have
|
||||||
|
* been realloced, in which case the driver uniform storage set up by
|
||||||
|
* _mesa_associate_uniform_storage() would point to freed memory. Make
|
||||||
|
* sure that didn't happen.
|
||||||
|
*/
|
||||||
|
assert(sanity_param_count == vp->Base.Parameters->NumParameters);
|
||||||
|
|
||||||
return !failed;
|
return !failed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -227,6 +227,7 @@ public:
|
||||||
const struct gl_vertex_program *vp;
|
const struct gl_vertex_program *vp;
|
||||||
struct brw_vs_compile *c;
|
struct brw_vs_compile *c;
|
||||||
struct brw_vs_prog_data *prog_data;
|
struct brw_vs_prog_data *prog_data;
|
||||||
|
unsigned int sanity_param_count;
|
||||||
|
|
||||||
char *fail_msg;
|
char *fail_msg;
|
||||||
bool failed;
|
bool failed;
|
||||||
|
|
Loading…
Reference in New Issue