diff --git a/src/xrt/compositor/render/render_interface.h b/src/xrt/compositor/render/render_interface.h index 5db279a21..976fe857a 100644 --- a/src/xrt/compositor/render/render_interface.h +++ b/src/xrt/compositor/render/render_interface.h @@ -58,12 +58,17 @@ extern "C" { */ #define RENDER_MAX_LAYERS (XRT_MAX_LAYERS) +/*! + * The maximum number samplers per view that can be used by the compute shader + * for layer composition (layer.comp) + */ +#define RENDER_CS_MAX_SAMPLERS_PER_VIEW 2 + /*! * Max number of images that can be given at a single time to the layer * squasher in a single dispatch. */ -#define RENDER_MAX_IMAGES_SIZE (RENDER_MAX_LAYERS * XRT_MAX_VIEWS) -#define RENDER_MAX_IMAGES_COUNT(RENDER_RESOURCES) (RENDER_MAX_LAYERS * RENDER_RESOURCES->view_count) +#define RENDER_MAX_IMAGES_SIZE (RENDER_MAX_LAYERS * RENDER_CS_MAX_SAMPLERS_PER_VIEW) /*! * Maximum number of times that the layer squasher shader can run per diff --git a/src/xrt/compositor/render/render_resources.c b/src/xrt/compositor/render/render_resources.c index fba654902..dad419006 100644 --- a/src/xrt/compositor/render/render_resources.c +++ b/src/xrt/compositor/render/render_resources.c @@ -543,7 +543,7 @@ render_resources_init(struct render_resources *r, r->compute.ubo_binding = 3; r->compute.layer.image_array_size = - MIN(vk->features.max_per_stage_descriptor_sampled_images, RENDER_MAX_IMAGES_COUNT(r)); + MIN(vk->features.max_per_stage_descriptor_sampled_images, RENDER_MAX_IMAGES_SIZE); /*