summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Turner <mattst88@gmail.com>2014-09-30 23:15:12 -0700
committerMatt Turner <mattst88@gmail.com>2014-09-30 23:15:12 -0700
commitb6711c0fc09fe06313e7085325e335d7acacc4d1 (patch)
tree6c7b8ad714d878eee6c4e341c214ab35a49e036f
parente9f6a521b11dd4eea9867684a2b0a4bfed5536a6 (diff)
code size grew 3k. I expect it's from the extra code to pass a bunch of arguments around. here, I was trying to group a bunch of things into a struct and just pass the struct pointer, but that's kind of what this-> was doing already.
-rw-r--r--src/mesa/drivers/dri/i965/brw_fs_generator.cpp30
1 files changed, 23 insertions, 7 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_fs_generator.cpp b/src/mesa/drivers/dri/i965/brw_fs_generator.cpp
index b5cdfedf6ea..f787f25e627 100644
--- a/src/mesa/drivers/dri/i965/brw_fs_generator.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs_generator.cpp
@@ -2056,17 +2056,33 @@ brw_fs_generate_assembly(struct brw_context *brw,
const cfg_t *simd16_cfg,
unsigned *assembly_size)
{
- struct brw_stage_prog_data * const prog_data = &_prog_data->base;
- const struct gl_program *prog = &fp->Base;
- gl_shader_stage stage = MESA_SHADER_FRAGMENT;
void *mem_ctx = ralloc_context(NULL);
- struct brw_compile *p = rzalloc(mem_ctx, struct brw_compile);
- brw_init_compile(brw, p, mem_ctx);
+
+ struct fs_generator_data {
+ struct brw_compile *p;
+ const struct brw_wm_prog_key *key;
+ struct brw_wm_prog_data *prog_data;
+ struct gl_shader_program *shader_prog;
+ const struct gl_program *prog;
+ gl_shader_stage stage;
+ bool runtime_check_aads_emit;
+ bool debug_flag;
+ } data = {
+ .p = rzalloc(mem_ctx, struct brw_compile),
+ .key = (const struct brw_wm_prog_key *)key,
+ .prog_data = &_prog_data->base,
+ .shader_prog = shader_prog,
+ .prog = &fp->Base,
+ .stage = MESA_SHADER_FRAGMENT,
+ .runtime_check_aads_emit = runtime_check_aads_emit,
+ .debug_flag = debug_flag,
+ };
+ brw_init_compile(brw, data.p, mem_ctx);
assert(simd8_cfg || simd16_cfg);
if (simd8_cfg) {
- generate_code(p, (const struct brw_wm_prog_key *)key, prog_data, shader_prog, prog, 8, runtime_check_aads_emit, debug_flag, stage, mem_ctx, simd8_cfg);
+ generate_code(p, (const struct brw_wm_prog_key *)key, prog_data, shader_prog, prog, 8, runtime_check_aads_emit, debug_flag, stage, simd8_cfg);
}
if (simd16_cfg) {
@@ -2082,7 +2098,7 @@ brw_fs_generate_assembly(struct brw_context *brw,
brw_set_default_compression_control(p, BRW_COMPRESSION_COMPRESSED);
- generate_code(p, (const struct brw_wm_prog_key *)key, prog_data, shader_prog, prog, 16, runtime_check_aads_emit, debug_flag, stage, mem_ctx, simd16_cfg);
+ generate_code(p, (const struct brw_wm_prog_key *)key, prog_data, shader_prog, prog, 16, runtime_check_aads_emit, debug_flag, stage, simd16_cfg);
}
ralloc_free(mem_ctx);