summaryrefslogtreecommitdiffstats
path: root/src/mesa/drivers/dri/i965/brw_fs_generator.cpp
diff options
context:
space:
mode:
authorKristian Høgsberg <krh@bitplanet.net>2014-10-20 22:53:31 -0700
committerKristian Høgsberg <krh@bitplanet.net>2014-12-10 12:28:48 -0800
commit7bb9d33b8d6ecc03670078c3f9623f188135abb7 (patch)
tree07bfc6370204ff92e1d3a26c2cdd31082f3c34a3 /src/mesa/drivers/dri/i965/brw_fs_generator.cpp
parent840e8fc9203390615f051259efeab0f61f48bbfc (diff)
downloadexternal_mesa3d-7bb9d33b8d6ecc03670078c3f9623f188135abb7.zip
external_mesa3d-7bb9d33b8d6ecc03670078c3f9623f188135abb7.tar.gz
external_mesa3d-7bb9d33b8d6ecc03670078c3f9623f188135abb7.tar.bz2
i965: Generalize fs_generator further
This removes all stage specific data from the generator, and lets us create a generator for any stage. Signed-off-by: Kristian Høgsberg <krh@bitplanet.net> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Diffstat (limited to 'src/mesa/drivers/dri/i965/brw_fs_generator.cpp')
-rw-r--r--src/mesa/drivers/dri/i965/brw_fs_generator.cpp14
1 files changed, 6 insertions, 8 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_fs_generator.cpp b/src/mesa/drivers/dri/i965/brw_fs_generator.cpp
index a650abb..6c528c6 100644
--- a/src/mesa/drivers/dri/i965/brw_fs_generator.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs_generator.cpp
@@ -122,16 +122,16 @@ brw_reg_from_fs_reg(fs_reg *reg)
fs_generator::fs_generator(struct brw_context *brw,
void *mem_ctx,
- const struct brw_wm_prog_key *key,
- struct brw_wm_prog_data *prog_data,
+ const void *key,
+ struct brw_stage_prog_data *prog_data,
struct gl_shader_program *shader_prog,
- struct gl_fragment_program *fp,
+ struct gl_program *prog,
bool runtime_check_aads_emit,
bool debug_flag)
- : brw(brw), stage(MESA_SHADER_FRAGMENT), key(key),
- prog_data(&prog_data->base), shader_prog(shader_prog),
- prog(&fp->Base), runtime_check_aads_emit(runtime_check_aads_emit),
+ : brw(brw), key(key),
+ prog_data(prog_data), shader_prog(shader_prog),
+ prog(prog), runtime_check_aads_emit(runtime_check_aads_emit),
debug_flag(debug_flag), mem_ctx(mem_ctx)
{
ctx = &brw->ctx;
@@ -201,7 +201,6 @@ fs_generator::fire_fb_write(fs_inst *inst,
{
uint32_t msg_control;
- assert(stage == MESA_SHADER_FRAGMENT);
brw_wm_prog_data *prog_data = (brw_wm_prog_data*) this->prog_data;
if (brw->gen < 6) {
@@ -242,7 +241,6 @@ fs_generator::fire_fb_write(fs_inst *inst,
void
fs_generator::generate_fb_write(fs_inst *inst, struct brw_reg payload)
{
- 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;
struct brw_reg implied_header;