diff options
author | Matt Turner <mattst88@gmail.com> | 2014-09-30 23:15:12 -0700 |
---|---|---|
committer | Matt Turner <mattst88@gmail.com> | 2014-09-30 23:15:12 -0700 |
commit | b6711c0fc09fe06313e7085325e335d7acacc4d1 (patch) | |
tree | 6c7b8ad714d878eee6c4e341c214ab35a49e036f | |
parent | e9f6a521b11dd4eea9867684a2b0a4bfed5536a6 (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.cpp | 30 |
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); |