mirror of
https://github.com/gfx-rs/wgpu.git
synced 2024-11-25 00:03:29 +00:00
Fix Subgroup Ops on VK 1.2 Device (#5624)
This commit is contained in:
parent
65d8c94afd
commit
7078b0a061
@ -62,8 +62,6 @@ for message in compilation_info
|
|||||||
|
|
||||||
By @stefnotch in [#5410](https://github.com/gfx-rs/wgpu/pull/5410)
|
By @stefnotch in [#5410](https://github.com/gfx-rs/wgpu/pull/5410)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### New features
|
### New features
|
||||||
|
|
||||||
#### General
|
#### General
|
||||||
@ -78,6 +76,10 @@ By @stefnotch in [#5410](https://github.com/gfx-rs/wgpu/pull/5410)
|
|||||||
|
|
||||||
### Bug Fixes
|
### Bug Fixes
|
||||||
|
|
||||||
|
#### Vulkan
|
||||||
|
|
||||||
|
- Fix enablement of subgroup ops extension on Vulkan devices that don't support Vulkan 1.3. By @cwfitzgerald in [#5624](https://github.com/gfx-rs/wgpu/pull/5624).
|
||||||
|
|
||||||
#### GLES / OpenGL
|
#### GLES / OpenGL
|
||||||
|
|
||||||
- Fix regression on OpenGL (EGL) where non-sRGB still used sRGB [#5642](https://github.com/gfx-rs/wgpu/pull/5642)
|
- Fix regression on OpenGL (EGL) where non-sRGB still used sRGB [#5642](https://github.com/gfx-rs/wgpu/pull/5642)
|
||||||
|
@ -1447,9 +1447,6 @@ impl super::Instance {
|
|||||||
}),
|
}),
|
||||||
image_format_list: phd_capabilities.device_api_version >= vk::API_VERSION_1_2
|
image_format_list: phd_capabilities.device_api_version >= vk::API_VERSION_1_2
|
||||||
|| phd_capabilities.supports_extension(khr::image_format_list::NAME),
|
|| phd_capabilities.supports_extension(khr::image_format_list::NAME),
|
||||||
subgroup_size_control: phd_features
|
|
||||||
.subgroup_size_control
|
|
||||||
.map_or(false, |ext| ext.subgroup_size_control == vk::TRUE),
|
|
||||||
};
|
};
|
||||||
let capabilities = crate::Capabilities {
|
let capabilities = crate::Capabilities {
|
||||||
limits: phd_capabilities.to_wgpu_limits(),
|
limits: phd_capabilities.to_wgpu_limits(),
|
||||||
@ -1766,6 +1763,7 @@ impl super::Adapter {
|
|||||||
vendor_id: self.phd_capabilities.properties.vendor_id,
|
vendor_id: self.phd_capabilities.properties.vendor_id,
|
||||||
timestamp_period: self.phd_capabilities.properties.limits.timestamp_period,
|
timestamp_period: self.phd_capabilities.properties.limits.timestamp_period,
|
||||||
private_caps: self.private_caps.clone(),
|
private_caps: self.private_caps.clone(),
|
||||||
|
features,
|
||||||
workarounds: self.workarounds,
|
workarounds: self.workarounds,
|
||||||
render_passes: Mutex::new(Default::default()),
|
render_passes: Mutex::new(Default::default()),
|
||||||
framebuffers: Mutex::new(Default::default()),
|
framebuffers: Mutex::new(Default::default()),
|
||||||
|
@ -773,7 +773,7 @@ impl super::Device {
|
|||||||
};
|
};
|
||||||
|
|
||||||
let mut flags = vk::PipelineShaderStageCreateFlags::empty();
|
let mut flags = vk::PipelineShaderStageCreateFlags::empty();
|
||||||
if self.shared.private_caps.subgroup_size_control {
|
if self.shared.features.contains(wgt::Features::SUBGROUP) {
|
||||||
flags |= vk::PipelineShaderStageCreateFlags::ALLOW_VARYING_SUBGROUP_SIZE
|
flags |= vk::PipelineShaderStageCreateFlags::ALLOW_VARYING_SUBGROUP_SIZE
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -236,7 +236,6 @@ struct PrivateCapabilities {
|
|||||||
robust_image_access2: bool,
|
robust_image_access2: bool,
|
||||||
zero_initialize_workgroup_memory: bool,
|
zero_initialize_workgroup_memory: bool,
|
||||||
image_format_list: bool,
|
image_format_list: bool,
|
||||||
subgroup_size_control: bool,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bitflags::bitflags!(
|
bitflags::bitflags!(
|
||||||
@ -342,6 +341,7 @@ struct DeviceShared {
|
|||||||
timestamp_period: f32,
|
timestamp_period: f32,
|
||||||
private_caps: PrivateCapabilities,
|
private_caps: PrivateCapabilities,
|
||||||
workarounds: Workarounds,
|
workarounds: Workarounds,
|
||||||
|
features: wgt::Features,
|
||||||
render_passes: Mutex<rustc_hash::FxHashMap<RenderPassKey, vk::RenderPass>>,
|
render_passes: Mutex<rustc_hash::FxHashMap<RenderPassKey, vk::RenderPass>>,
|
||||||
framebuffers: Mutex<rustc_hash::FxHashMap<FramebufferKey, vk::Framebuffer>>,
|
framebuffers: Mutex<rustc_hash::FxHashMap<FramebufferKey, vk::Framebuffer>>,
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user