{ images = { shadow = { flags = cube_compatible; imageType = `2d; format = x8_d24_unorm_pack32; samples = 1; extent = { width = 256; // FIXME config height = 256; // FIXME config depth = 1; }; mipLevels = 1; arrayLayers = 2048; // FIXME config tiling = optimal; usage = depth_stencil_attachment|sampled; initialLayout = undefined; }; }; imageViews = { shadow = { image = depth; viewType = VK_IMAGE_VIEW_TYPE_2D_ARRAY; format = $properties.images.shadow.format; components = { r = identity; g = identity; b = identity; a = identity; }; subresourceRange = { aspectMask = depth; levelCount = 1; layerCount = $properties.images.shadow.arrayLayers; }; }; }; framebuffer = { renderPass = $properties.renderpass; attachments = (shadown); width = $properties.images.shadow.extent.width; height = $properties.images.shadow.extent.height; layers = $properties.images.shadow.arrayLayers; }; clearValues = ( { depthStencil = { depth = 1; stencil = 0; }; }, ); renderpass = { attachments = ( { format = $properties.images.depth.format; samples = 1; loadOp = dont_care; storeOp = store; stencilLoadOp = dont_care; stencilStoreOp = dont_care; initialLayout = undefined; finalLayout = shader_read_only_optimal; }, ); subpasses = ( { // 0 depth pipelineBindPoint = graphics; depthStencilAttachment = { attachment = 0; layout = depth_stencil_attachment_optimal; }; } ); }; }