Mesa (master): i965/fs: Handle !supports_pull_constants and push UBOs properly

Jason Ekstrand jekstrand at kemper.freedesktop.org
Sat Dec 9 00:16:09 UTC 2017


Module: Mesa
Branch: master
Commit: f1ce0b905ab159f3f1bdc947ff25ddbeeb1f6802
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=f1ce0b905ab159f3f1bdc947ff25ddbeeb1f6802

Author: Jason Ekstrand <jason.ekstrand at intel.com>
Date:   Sat Dec  2 22:34:47 2017 -0800

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.

---

 src/intel/compiler/brw_fs.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/intel/compiler/brw_fs.cpp b/src/intel/compiler/brw_fs.cpp
index fd51cace75..0e3ab381fa 100644
--- a/src/intel/compiler/brw_fs.cpp
+++ b/src/intel/compiler/brw_fs.cpp
@@ -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 */




More information about the mesa-commit mailing list