anv: reduce maxFragmentInputComponents
authorSamuel Iglesias Gonsálvez <siglesias@igalia.com>
Mon, 28 May 2018 09:42:15 +0000 (11:42 +0200)
committerSamuel Iglesias Gonsálvez <siglesias@igalia.com>
Thu, 14 Jun 2018 07:54:28 +0000 (09:54 +0200)
If the application asks for the maximum number of fragment input
components (128), use all of them plus some builtins that are
passed in the VUE, then we exceed the maximum number of used VUE
slots (32) and we break one assert that checks this limit.

Also, with separate shader objects, we add CLIP_DIST0, CLIP_DIST1
builtins in brw_compute_vue_map() because we don't know if
gl_ClipDistance is going to be read/write by an adjacent stage.

Fixes VK-GL-CTS CL#2569.

Signed-off-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
src/intel/vulkan/anv_device.c

index b02e1a2749e92de5109bd6eee02229f4a3d8a03b..63d5876edb10504a9b79ada2735c7d27cafc6b71 100644 (file)
@@ -901,7 +901,7 @@ void anv_GetPhysicalDeviceProperties(
       .maxGeometryOutputComponents              = 128,
       .maxGeometryOutputVertices                = 256,
       .maxGeometryTotalOutputComponents         = 1024,
-      .maxFragmentInputComponents               = 128,
+      .maxFragmentInputComponents               = 112, /* 128 components - (POS, PSIZ, CLIP_DIST0, CLIP_DIST1) */
       .maxFragmentOutputAttachments             = 8,
       .maxFragmentDualSrcAttachments            = 1,
       .maxFragmentCombinedOutputResources       = 8,