diff options
author | Kenneth Graunke <[email protected]> | 2016-01-02 03:21:28 -0800 |
---|---|---|
committer | Kenneth Graunke <[email protected]> | 2017-07-13 19:56:49 -0700 |
commit | 6d28c6e52cfd76855c1368560dd90f12493e2580 (patch) | |
tree | d94e2e3a9961a6d02a582851485cca73dc2a2f95 /src/intel/compiler/brw_nir.h | |
parent | 2a5e4f15efb7be113cbc310bb7d809578153953d (diff) |
i965: Select ranges of UBO data to be uploaded as push constants.
This adds a NIR pass that decides which portions of UBOS we should
upload as push constants, rather than pull constants.
v2: Switch to uint16_t for the UBO block number, because we may
have a lot of them in Vulkan (suggested by Jason). Add more
comments about bitfield trickery (requested by Matt).
v3: Skip vec4 stages for now...I haven't finished wiring up support
in the vec4 backend, and so pushing the data but not using it
will just be wasteful.
Reviewed-by: Matt Turner <[email protected]>
Diffstat (limited to 'src/intel/compiler/brw_nir.h')
-rw-r--r-- | src/intel/compiler/brw_nir.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/intel/compiler/brw_nir.h b/src/intel/compiler/brw_nir.h index 5d866b86ac8..560027c3662 100644 --- a/src/intel/compiler/brw_nir.h +++ b/src/intel/compiler/brw_nir.h @@ -142,6 +142,10 @@ void brw_nir_setup_glsl_uniforms(nir_shader *shader, void brw_nir_setup_arb_uniforms(nir_shader *shader, struct gl_program *prog, struct brw_stage_prog_data *stage_prog_data); +void brw_nir_analyze_ubo_ranges(const struct brw_compiler *compiler, + nir_shader *nir, + struct brw_ubo_range out_ranges[4]); + bool brw_nir_opt_peephole_ffma(nir_shader *shader); #define BRW_NIR_FRAG_OUTPUT_INDEX_SHIFT 0 |