intel/fs: use pull constant locations to check for first compile of a shader

Before, we bailing in assign_constant_locations based on the minimum
dispatch size.  The more direct thing to do is simply to check for
whether or not we have constant locations and bail if we do.  For
nir_setup_uniforms, it's completely safe to do it multiple times because
we just copy a value from the NIR shader.

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
This commit is contained in:
Jason Ekstrand
2017-08-21 18:42:41 -07:00
parent 103081c9a9
commit b299ded02e
2 changed files with 7 additions and 2 deletions

View File

@@ -81,8 +81,11 @@ fs_visitor::nir_setup_outputs()
void
fs_visitor::nir_setup_uniforms()
{
if (dispatch_width != min_dispatch_width)
/* Only the first compile gets to set up uniforms. */
if (push_constant_loc) {
assert(pull_constant_loc);
return;
}
uniforms = nir->num_uniforms / 4;
}