i965/fs: Handle !supports_pull_constants and push UBOs properly

In Vulkan, we don't support classic pull constants and everything the
client asks us to push, we push.  However, for pushed UBOs, we still
want to fall back to conventional pulls if we run out of space.
This commit is contained in:
Jason Ekstrand 2017-12-02 22:34:47 -08:00
parent 8d34077182
commit f1ce0b905a

View file

@ -2155,7 +2155,7 @@ fs_visitor::assign_constant_locations()
unsigned push_start_align = cplx_align_apply(align, num_push_constants);
unsigned chunk_size = u - chunk_start + 1;
if (!compiler->supports_pull_constants ||
if ((!compiler->supports_pull_constants && u < UBO_START) ||
(chunk_size < max_chunk_size &&
push_start_align + chunk_size <= max_push_components)) {
/* Align up the number of push constants */