vulkan: apply color space transforms to textures
This commit is contained in:
parent
c4d0fdd4bb
commit
8e65de91f9
12 changed files with 233 additions and 66 deletions
|
|
@ -15,7 +15,7 @@ pub(super) struct VulkanDescriptorSetLayout {
|
|||
pub(super) device: Rc<VulkanDevice>,
|
||||
pub(super) layout: DescriptorSetLayout,
|
||||
pub(super) size: DeviceSize,
|
||||
pub(super) offsets: ArrayVec<DeviceSize, 1>,
|
||||
pub(super) offsets: ArrayVec<DeviceSize, 2>,
|
||||
pub(super) _sampler: Option<Rc<VulkanSampler>>,
|
||||
}
|
||||
|
||||
|
|
@ -87,12 +87,20 @@ impl VulkanDevice {
|
|||
pub(super) fn create_tex_resource_descriptor_set_layout(
|
||||
self: &Rc<Self>,
|
||||
) -> Result<Rc<VulkanDescriptorSetLayout>, VulkanError> {
|
||||
let binding = DescriptorSetLayoutBinding::default()
|
||||
.stage_flags(ShaderStageFlags::FRAGMENT)
|
||||
.descriptor_count(1)
|
||||
.descriptor_type(DescriptorType::SAMPLED_IMAGE);
|
||||
let bindings = [
|
||||
DescriptorSetLayoutBinding::default()
|
||||
.binding(0)
|
||||
.stage_flags(ShaderStageFlags::FRAGMENT)
|
||||
.descriptor_count(1)
|
||||
.descriptor_type(DescriptorType::SAMPLED_IMAGE),
|
||||
DescriptorSetLayoutBinding::default()
|
||||
.binding(1)
|
||||
.stage_flags(ShaderStageFlags::FRAGMENT)
|
||||
.descriptor_count(1)
|
||||
.descriptor_type(DescriptorType::UNIFORM_BUFFER),
|
||||
];
|
||||
let create_info = DescriptorSetLayoutCreateInfo::default()
|
||||
.bindings(slice::from_ref(&binding))
|
||||
.bindings(&bindings)
|
||||
.flags(DescriptorSetLayoutCreateFlags::DESCRIPTOR_BUFFER_EXT);
|
||||
let layout = unsafe { self.device.create_descriptor_set_layout(&create_info, None) };
|
||||
let layout = layout.map_err(VulkanError::CreateDescriptorSetLayout)?;
|
||||
|
|
@ -101,6 +109,7 @@ impl VulkanDevice {
|
|||
let mut offsets = ArrayVec::new();
|
||||
unsafe {
|
||||
offsets.push(db.get_descriptor_set_layout_binding_offset(layout, 0));
|
||||
offsets.push(db.get_descriptor_set_layout_binding_offset(layout, 1));
|
||||
}
|
||||
Ok(Rc::new(VulkanDescriptorSetLayout {
|
||||
device: self.clone(),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue