@@ -387,12 +387,12 @@ VmaAllocator lvk::createVmaAllocator(VkPhysicalDevice physDev,
387387glslang_resource_t lvk::getGlslangResource (const VkPhysicalDeviceLimits& limits) {
388388 const glslang_resource_t resource = {
389389 .max_lights = 32 ,
390- .max_clip_planes = 6 ,
390+ .max_clip_planes = ( int )limits. maxClipDistances ,
391391 .max_texture_units = 32 ,
392392 .max_texture_coords = 32 ,
393393 .max_vertex_attribs = (int )limits.maxVertexInputAttributes ,
394- .max_vertex_uniform_components = 4096 ,
395- .max_varying_floats = 64 ,
394+ .max_vertex_uniform_components = ( int )limits. maxUniformBufferRange / 4 ,
395+ .max_varying_floats = ( int ) std::min (limits. maxVertexOutputComponents , limits. maxFragmentInputComponents ) ,
396396 .max_vertex_texture_image_units = 32 ,
397397 .max_combined_texture_image_units = 80 ,
398398 .max_texture_image_units = 32 ,
@@ -401,10 +401,10 @@ glslang_resource_t lvk::getGlslangResource(const VkPhysicalDeviceLimits& limits)
401401 .max_vertex_uniform_vectors = 128 ,
402402 .max_varying_vectors = 8 ,
403403 .max_fragment_uniform_vectors = 16 ,
404- .max_vertex_output_vectors = 16 ,
405- .max_fragment_input_vectors = 15 ,
406- .min_program_texel_offset = - 8 ,
407- .max_program_texel_offset = 7 ,
404+ .max_vertex_output_vectors = ( int )limits. maxVertexOutputComponents / 4 ,
405+ .max_fragment_input_vectors = ( int )limits. maxFragmentInputComponents / 4 ,
406+ .min_program_texel_offset = limits. minTexelOffset ,
407+ .max_program_texel_offset = ( int )limits. maxTexelOffset ,
408408 .max_clip_distances = (int )limits.maxClipDistances ,
409409 .max_compute_work_group_count_x = (int )limits.maxComputeWorkGroupCount [0 ],
410410 .max_compute_work_group_count_y = (int )limits.maxComputeWorkGroupCount [1 ],
0 commit comments