Instead we store a void pointer to the key, and cast it to
brw_wm_prog_key for fragment shader specific code paths.
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
struct brw_compile *p;
gl_shader_stage stage;
struct brw_compile *p;
gl_shader_stage stage;
- const struct brw_wm_prog_key *const key;
+ const void * const key;
struct brw_stage_prog_data * const prog_data;
struct gl_shader_program * const shader_prog;
struct brw_stage_prog_data * const prog_data;
struct gl_shader_program * const shader_prog;
assert(stage == MESA_SHADER_FRAGMENT);
brw_wm_prog_data *prog_data = (brw_wm_prog_data*) this->prog_data;
assert(stage == MESA_SHADER_FRAGMENT);
brw_wm_prog_data *prog_data = (brw_wm_prog_data*) this->prog_data;
+ const brw_wm_prog_key * const key = (brw_wm_prog_key * const) this->key;
/* Header is 2 regs, g0 and g1 are the contents. g0 will be implied
* move, here's g1.
/* Header is 2 regs, g0 and g1 are the contents. g0 will be implied
* move, here's g1.
assert(quality.file == BRW_IMMEDIATE_VALUE);
assert(quality.type == BRW_REGISTER_TYPE_D);
assert(quality.file == BRW_IMMEDIATE_VALUE);
assert(quality.type == BRW_REGISTER_TYPE_D);
+ assert(stage == MESA_SHADER_FRAGMENT);
+ const brw_wm_prog_key * const key = (brw_wm_prog_key * const) this->key;
+
int quality_value = quality.dw1.d;
if (quality_value == BRW_DERIVATIVE_FINE ||
int quality_value = quality.dw1.d;
if (quality_value == BRW_DERIVATIVE_FINE ||
assert(quality.file == BRW_IMMEDIATE_VALUE);
assert(quality.type == BRW_REGISTER_TYPE_D);
assert(quality.file == BRW_IMMEDIATE_VALUE);
assert(quality.type == BRW_REGISTER_TYPE_D);
+ assert(stage == MESA_SHADER_FRAGMENT);
+ const brw_wm_prog_key * const key = (brw_wm_prog_key * const) this->key;
+
int quality_value = quality.dw1.d;
if (quality_value == BRW_DERIVATIVE_FINE ||
int quality_value = quality.dw1.d;
if (quality_value == BRW_DERIVATIVE_FINE ||
*/
assert(stage == MESA_SHADER_FRAGMENT &&
((gl_fragment_program *) prog)->UsesDFdy);
*/
assert(stage == MESA_SHADER_FRAGMENT &&
((gl_fragment_program *) prog)->UsesDFdy);
- generate_ddy(inst, dst, src[0], src[1], key->render_to_fbo);
+ generate_ddy(inst, dst, src[0], src[1],
+ ((brw_wm_prog_key * const) this->key)->render_to_fbo);
break;
case SHADER_OPCODE_GEN4_SCRATCH_WRITE:
break;
case SHADER_OPCODE_GEN4_SCRATCH_WRITE: