gtk/gsk/gpu
Benjamin Otte 03cd652063 gpu: Disable the ubershader when shaders aren't nonuniform
If shaders don't support nonuniform indexing, we emulate it via if/else
ladders (or switch ladders) which get inlined by the GLSL compiles and
massively blow up the code.

And that makes compilation of the shaders take minutes and results in
shader code that isn't necessarily faster.

So we disable it on GL entirely and on Vulkan if the required features
aren't available.

As it's only an optimization and does not fall back to Cairo anymore,
this should be fine.
2024-01-07 08:18:36 +01:00
..
shaders gpu: Setup attribute locations 2024-01-07 07:22:53 +01:00
gskglbuffer.c gpu: Don't try to be smart 2024-01-07 07:22:50 +01:00
gskglbufferprivate.h gpu: Add float array to shaders and add an ubershader 2024-01-07 07:22:50 +01:00
gskgldescriptors.c gpu: Handle storage buffers via descriptors 2024-01-07 07:22:52 +01:00
gskgldescriptorsprivate.h gpu: Prepare GL rendering for samplerExternalEOS 2024-01-07 07:22:51 +01:00
gskgldevice.c gpu: Setup attribute locations 2024-01-07 07:22:53 +01:00
gskgldeviceprivate.h gpu: Introduce the concept of "variation" 2024-01-07 07:22:53 +01:00
gskglframe.c gpu: Introduce the concept of "variation" 2024-01-07 07:22:53 +01:00
gskglframeprivate.h gpu: Introduce the concept of "variation" 2024-01-07 07:22:53 +01:00
gskglimage.c gpu: Reorganize format handling 2024-01-07 07:22:52 +01:00
gskglimageprivate.h gpu: Reorganize format handling 2024-01-07 07:22:52 +01:00
gskgpublendmodeop.c gpu: Setup attribute locations 2024-01-07 07:22:53 +01:00
gskgpublendmodeopprivate.h gpu: Add a blend mode shader 2024-01-07 07:22:53 +01:00
gskgpublendop.c gpu: Make blend modes configurable 2024-01-07 07:22:52 +01:00
gskgpublendopprivate.h gpu: Make blend modes configurable 2024-01-07 07:22:52 +01:00
gskgpublitop.c gpu: Add more assertions to blitop 2024-01-07 07:22:53 +01:00
gskgpublitopprivate.h gpu: Add outline of new GPU renderer 2024-01-07 07:22:49 +01:00
gskgpublurop.c gpu: Setup attribute locations 2024-01-07 07:22:53 +01:00
gskgpubluropprivate.h gpu: Use variations in the blur shader 2024-01-07 07:22:53 +01:00
gskgpuborderop.c gpu: Setup attribute locations 2024-01-07 07:22:53 +01:00
gskgpuborderopprivate.h gpu: Make border shader usable for inset/outset 2024-01-07 07:22:50 +01:00
gskgpuboxshadowop.c gpu: Setup attribute locations 2024-01-07 07:22:53 +01:00
gskgpuboxshadowopprivate.h gpu: Add a box shadow shader 2024-01-07 07:22:51 +01:00
gskgpubuffer.c gpu: Add ability to run shaders 2024-01-07 07:22:49 +01:00
gskgpubufferprivate.h gpu: Add ability to run shaders 2024-01-07 07:22:49 +01:00
gskgpuclearop.c gpu: Add a CommandState struct to the command vfuncs 2024-01-07 07:22:51 +01:00
gskgpuclearopprivate.h gpu: Copy the clear trick from the Vulkan shader 2024-01-07 07:22:50 +01:00
gskgpuclip.c gpu: Add ability to run shaders 2024-01-07 07:22:49 +01:00
gskgpuclipprivate.h gpu: Add ability to run shaders 2024-01-07 07:22:49 +01:00
gskgpucolorizeop.c gpu: Setup attribute locations 2024-01-07 07:22:53 +01:00
gskgpucolorizeopprivate.h gpu: Refactor image handling 2024-01-07 07:22:50 +01:00
gskgpucolormatrixop.c gpu: Setup attribute locations 2024-01-07 07:22:53 +01:00
gskgpucolormatrixopprivate.h gpu: Add a color matrix shader 2024-01-07 07:22:52 +01:00
gskgpucolorop.c gpu: Setup attribute locations 2024-01-07 07:22:53 +01:00
gskgpucoloropprivate.h gpu: Add a color shader 2024-01-07 07:22:50 +01:00
gskgpuconicgradientop.c gpu: Setup attribute locations 2024-01-07 07:22:53 +01:00
gskgpuconicgradientopprivate.h gpu: Add a conic gradient shader 2024-01-07 07:22:53 +01:00
gskgpucrossfadeop.c gpu: Setup attribute locations 2024-01-07 07:22:53 +01:00
gskgpucrossfadeopprivate.h gpu: Add a cross-fade shader 2024-01-07 07:22:53 +01:00
gskgpudescriptors.c gpu: Handle storage buffers via descriptors 2024-01-07 07:22:52 +01:00
gskgpudescriptorsprivate.h gpu: Handle storage buffers via descriptors 2024-01-07 07:22:52 +01:00
gskgpudevice.c gpu: Add gsk_gpu_device_create_download_image() 2024-01-07 07:22:52 +01:00
gskgpudeviceprivate.h gpu: Add gsk_gpu_device_create_download_image() 2024-01-07 07:22:52 +01:00
gskgpudownloadop.c gpu: Add a boolean flag allow_dmabuf to the downloadop 2024-01-07 07:22:52 +01:00
gskgpudownloadopprivate.h gpu: Add a boolean flag allow_dmabuf to the downloadop 2024-01-07 07:22:52 +01:00
gskgpuframe.c vulkan: Add a Vulkan downloader 2024-01-07 07:22:52 +01:00
gskgpuframeprivate.h gpu: Implement a GdkDmabufDownloader 2024-01-07 07:22:52 +01:00
gskgpuglobalsop.c gpu: Handle storage buffers via descriptors 2024-01-07 07:22:52 +01:00
gskgpuglobalsopprivate.h gpu: Add ability to run shaders 2024-01-07 07:22:49 +01:00
gskgpuimage.c gpu: Add dmabuf import for Vulkan 2024-01-07 07:22:51 +01:00
gskgpuimageprivate.h gpu: Add dmabuf import for Vulkan 2024-01-07 07:22:51 +01:00
gskgpulineargradientop.c gpu: Setup attribute locations 2024-01-07 07:22:53 +01:00
gskgpulineargradientopprivate.h gpu: Handle >7 color stops 2024-01-07 07:22:52 +01:00
gskgpumaskop.c gpu: Setup attribute locations 2024-01-07 07:22:53 +01:00
gskgpumaskopprivate.h gpu: Add a mask shader 2024-01-07 07:22:52 +01:00
gskgpumipmapop.c gpu: sync dmabufs via semaphores 2024-01-07 07:22:52 +01:00
gskgpumipmapopprivate.h gpu: Add support for texture-scale nodes 2024-01-07 07:22:51 +01:00
gskgpunodeprocessor.c gpu: Add GSK_GPU_SKIP=blit 2024-01-07 07:22:53 +01:00
gskgpunodeprocessorprivate.h gpu: Add outline of new GPU renderer 2024-01-07 07:22:49 +01:00
gskgpuop.c gpu: Add a CommandState struct to the command vfuncs 2024-01-07 07:22:51 +01:00
gskgpuopprivate.h gpu: Introduce the concept of "variation" 2024-01-07 07:22:53 +01:00
gskgpuprint.c gpu: Add a blend mode shader 2024-01-07 07:22:53 +01:00
gskgpuprintprivate.h gpu: Add a blend mode shader 2024-01-07 07:22:53 +01:00
gskgpuradialgradientop.c gpu: Setup attribute locations 2024-01-07 07:22:53 +01:00
gskgpuradialgradientopprivate.h gpu: Add a radial gradient shader 2024-01-07 07:22:53 +01:00
gskgpurenderer.c gpu: Add GSK_GPU_SKIP=blit 2024-01-07 07:22:53 +01:00
gskgpurenderer.h gpu: Add outline of new GPU renderer 2024-01-07 07:22:49 +01:00
gskgpurendererprivate.h gpu: Implement a GdkDmabufDownloader 2024-01-07 07:22:52 +01:00
gskgpurenderpassop.c gpu: sync dmabufs via semaphores 2024-01-07 07:22:52 +01:00
gskgpurenderpassopprivate.h gpu: Add ability to run shaders 2024-01-07 07:22:49 +01:00
gskgpuroundedcolorop.c gpu: Setup attribute locations 2024-01-07 07:22:53 +01:00
gskgpuroundedcoloropprivate.h gpu: Add a rounded color shader 2024-01-07 07:22:50 +01:00
gskgpuscissorop.c gpu: Add a CommandState struct to the command vfuncs 2024-01-07 07:22:51 +01:00
gskgpuscissoropprivate.h gpu: Add scissor operation 2024-01-07 07:22:49 +01:00
gskgpushaderop.c gpu: Introduce the concept of "variation" 2024-01-07 07:22:53 +01:00
gskgpushaderopprivate.h gpu: Setup attribute locations 2024-01-07 07:22:53 +01:00
gskgpustraightalphaop.c gpu: Setup attribute locations 2024-01-07 07:22:53 +01:00
gskgpustraightalphaopprivate.h gpu: Handle alpha in image_op() wrapper 2024-01-07 07:22:53 +01:00
gskgputextureop.c gpu: Setup attribute locations 2024-01-07 07:22:53 +01:00
gskgputextureopprivate.h gpu: Refactor image handling 2024-01-07 07:22:50 +01:00
gskgputypesprivate.h gpu: Add GSK_GPU_SKIP=blit 2024-01-07 07:22:53 +01:00
gskgpuuberop.c gpu: Setup attribute locations 2024-01-07 07:22:53 +01:00
gskgpuuberopprivate.h gpu: Refactor image handling 2024-01-07 07:22:50 +01:00
gskgpuuploadop.c gpu: Change the cairo upload op prototype 2024-01-07 07:22:53 +01:00
gskgpuuploadopprivate.h gpu: Change the cairo upload op prototype 2024-01-07 07:22:53 +01:00
gsknglrenderer.c gpu: Disable the ubershader when shaders aren't nonuniform 2024-01-07 08:18:36 +01:00
gsknglrendererprivate.h gpu: Add outline of new GPU renderer 2024-01-07 07:22:49 +01:00
gskvulkanbuffer.c gpu: Add ability to run shaders 2024-01-07 07:22:49 +01:00
gskvulkanbufferprivate.h gpu: Add ability to run shaders 2024-01-07 07:22:49 +01:00
gskvulkandescriptors.c gpu: sync dmabufs via semaphores 2024-01-07 07:22:52 +01:00
gskvulkandescriptorsprivate.h gpu: sync dmabufs via semaphores 2024-01-07 07:22:52 +01:00
gskvulkandevice.c gpu: Introduce the concept of "variation" 2024-01-07 07:22:53 +01:00
gskvulkandeviceprivate.h gpu: Introduce the concept of "variation" 2024-01-07 07:22:53 +01:00
gskvulkanframe.c gpu: Make blend modes configurable 2024-01-07 07:22:52 +01:00
gskvulkanframeprivate.h gpu: sync dmabufs via semaphores 2024-01-07 07:22:52 +01:00
gskvulkanimage.c gpu: Update to memoryformat Vulkan code 2024-01-07 07:22:52 +01:00
gskvulkanimageprivate.h gpu: sync dmabufs via semaphores 2024-01-07 07:22:52 +01:00
gskvulkanmemory.c gpu: Improve memory handling on Vulkan 2024-01-07 07:22:52 +01:00
gskvulkanmemoryprivate.h gpu: Improve memory handling on Vulkan 2024-01-07 07:22:52 +01:00
gskvulkanrealdescriptors.c gpu: Make VulkanRealDescriptor keep the frame 2024-01-07 07:22:52 +01:00
gskvulkanrealdescriptorsprivate.h gpu: Make VulkanRealDescriptor keep the frame 2024-01-07 07:22:52 +01:00
gskvulkanrenderer.c gpu: Disable the ubershader when shaders aren't nonuniform 2024-01-07 08:18:36 +01:00
gskvulkansubdescriptors.c gpu: Handle storage buffers via descriptors 2024-01-07 07:22:52 +01:00
gskvulkansubdescriptorsprivate.h gpu: Add back single descriptors set usage with descriptor indexing 2024-01-07 07:22:51 +01:00