diff options
author | Eric Anholt <eric@anholt.net> | 2012-01-31 16:55:20 -0800 |
---|---|---|
committer | Eric Anholt <eric@anholt.net> | 2012-09-17 12:32:52 -0700 |
commit | 077d01b673ec255005a1a847faf3be897517f4e7 (patch) | |
tree | 25d3b6bd37420374b4fccb8ce661026850cd7ed4 /src/mesa/drivers/dri/i965/brw_eu.h | |
parent | f5e2706395904eb515a04c71966d7b96972f221a (diff) | |
download | external_mesa3d-077d01b673ec255005a1a847faf3be897517f4e7.zip external_mesa3d-077d01b673ec255005a1a847faf3be897517f4e7.tar.gz external_mesa3d-077d01b673ec255005a1a847faf3be897517f4e7.tar.bz2 |
i965: Add support for instruction compaction.
This reduces program size by using some smaller encodings for common bit
patterns in the Gen ISA, with the hope of making programs fit in the
instruction cache better.
v2: Use larger bitshifts for the uncompressed field setups, in line with the
way it's described in the spec. Consistently name a brw_compile "p" like
all other code. Add a couple more tests. Consistently call things
"compacted" not "compressed" (which is a different feature). Drop the
explicit check for not compacting SENDs, which is unjustified and already
implied by our lack of support for immediate values.
Reviewed-by: Paul Berry <stereotype441@gmail.com>
Diffstat (limited to 'src/mesa/drivers/dri/i965/brw_eu.h')
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_eu.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_eu.h b/src/mesa/drivers/dri/i965/brw_eu.h index 2fa84df..21967bd 100644 --- a/src/mesa/drivers/dri/i965/brw_eu.h +++ b/src/mesa/drivers/dri/i965/brw_eu.h @@ -1107,6 +1107,19 @@ void brw_set_uip_jip(struct brw_compile *p); uint32_t brw_swap_cmod(uint32_t cmod); +/* brw_eu_compact.c */ +void brw_compact_instructions(struct brw_compile *p); +void brw_uncompact_instruction(struct intel_context *intel, + struct brw_instruction *dst, + struct brw_compact_instruction *src); +bool brw_try_compact_instruction(struct brw_compile *p, + struct brw_compact_instruction *dst, + struct brw_instruction *src); + +void brw_debug_compact_uncompact(struct intel_context *intel, + struct brw_instruction *orig, + struct brw_instruction *uncompacted); + /* brw_optimize.c */ void brw_optimize(struct brw_compile *p); void brw_remove_duplicate_mrf_moves(struct brw_compile *p); |