intel/fs: Don't pull CS push constants if uses_inline_data

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8637>
This commit is contained in:
Jason Ekstrand 2020-06-16 23:06:56 -05:00 committed by Marge Bot
parent 79dc25d867
commit b66d3e627a
2 changed files with 11 additions and 1 deletions

View File

@ -1035,6 +1035,7 @@ struct brw_cs_prog_data {
bool uses_barrier;
bool uses_num_work_groups;
bool uses_inline_data;
bool uses_btd_stack_ids;
struct {

View File

@ -1670,7 +1670,16 @@ fs_visitor::assign_curb_setup()
uint64_t used = 0;
if (stage == MESA_SHADER_COMPUTE && devinfo->verx10 >= 125) {
if (stage == MESA_SHADER_COMPUTE &&
brw_cs_prog_data(prog_data)->uses_inline_data) {
/* With COMPUTE_WALKER, we can push up to one register worth of data via
* the inline data parameter in the COMPUTE_WALKER command itself.
*
* TODO: Support inline data and push at the same time.
*/
assert(devinfo->verx10 >= 125);
assert(uniform_push_length <= 1);
} else if (stage == MESA_SHADER_COMPUTE && devinfo->verx10 >= 125) {
fs_builder ubld = bld.exec_all().group(8, 0).at(
cfg->first_block(), cfg->first_block()->start());