diff options
| author | Valentin Popov <valentin@popov.link> | 2026-07-18 07:40:40 +0300 |
|---|---|---|
| committer | Valentin Popov <valentin@popov.link> | 2026-07-18 07:40:40 +0300 |
| commit | 4feada1bf4e2cb14f1be4f35bb789b8902e88926 (patch) | |
| tree | 90f3f5f7869dce639fc6e43f5f6ed22c014efc2b /adapters/fparkan-render-vulkan/src/ffi/swapchain_resources.rs | |
| parent | 4b741fb19c495a29bc12f6f057df01c91c1d9097 (diff) | |
| download | fparkan-4feada1bf4e2cb14f1be4f35bb789b8902e88926.tar.xz fparkan-4feada1bf4e2cb14f1be4f35bb789b8902e88926.zip | |
feat(vulkan): add alpha test shader path
Diffstat (limited to 'adapters/fparkan-render-vulkan/src/ffi/swapchain_resources.rs')
| -rw-r--r-- | adapters/fparkan-render-vulkan/src/ffi/swapchain_resources.rs | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/adapters/fparkan-render-vulkan/src/ffi/swapchain_resources.rs b/adapters/fparkan-render-vulkan/src/ffi/swapchain_resources.rs index ff797e1..529214d 100644 --- a/adapters/fparkan-render-vulkan/src/ffi/swapchain_resources.rs +++ b/adapters/fparkan-render-vulkan/src/ffi/swapchain_resources.rs @@ -381,7 +381,13 @@ fn create_pipeline_layout( descriptor_set_layout: vk::DescriptorSetLayout, ) -> Result<vk::PipelineLayout, VulkanSmokeRendererError> { let set_layouts = [descriptor_set_layout]; - let create_info = vk::PipelineLayoutCreateInfo::default().set_layouts(&set_layouts); + let push_constant_ranges = [vk::PushConstantRange::default() + .stage_flags(vk::ShaderStageFlags::FRAGMENT) + .offset(0) + .size(u32::try_from(std::mem::size_of::<f32>()).unwrap_or(u32::MAX))]; + let create_info = vk::PipelineLayoutCreateInfo::default() + .set_layouts(&set_layouts) + .push_constant_ranges(&push_constant_ranges); // SAFETY: The descriptor-set layout belongs to this live logical device. unsafe { device.device().create_pipeline_layout(&create_info, None) }.map_err(|error| { VulkanSmokeRendererError::VulkanOperation { @@ -562,12 +568,6 @@ fn create_graphics_pipeline( extent: (u32, u32), state: LegacyPipelineState, ) -> Result<vk::Pipeline, VulkanSmokeRendererError> { - if state.alpha_test { - return Err(VulkanSmokeRendererError::InvalidStaticMesh { - context: - "static renderer has no alpha-test shader variant for requested pipeline state", - }); - } let vertex_shader = create_shader_module(device, TRIANGLE_VERTEX_SHADER_WORDS)?; let fragment_shader = match create_shader_module(device, TRIANGLE_FRAGMENT_SHADER_WORDS) { Ok(module) => module, |
