Fix support for d24unorm format

This commit is contained in:
Dzmitry Malyshau
2020-08-13 17:26:44 -04:00
parent 92aaa2bba6
commit 44fdfb80d0
3 changed files with 7 additions and 2 deletions

View File

@@ -370,8 +370,8 @@ pub(crate) fn map_texture_format(
// Depth and stencil formats
Tf::Depth32Float => H::D32Sfloat,
Tf::Depth24Plus => {
if private_features.texture_d24_s8 {
H::D24UnormS8Uint
if private_features.texture_d24 {
H::X8D24Unorm
} else {
H::D32Sfloat
}

View File

@@ -744,6 +744,10 @@ impl<G: GlobalIdentityHandlerFactory> Global<G> {
let private_features = PrivateFeatures {
shader_validation: desc.shader_validation,
anisotropic_filtering: enabled_features.contains(hal::Features::SAMPLER_ANISOTROPY),
texture_d24: phd
.format_properties(Some(hal::format::Format::X8D24Unorm))
.optimal_tiling
.contains(hal::format::ImageFeature::DEPTH_STENCIL_ATTACHMENT),
texture_d24_s8: phd
.format_properties(Some(hal::format::Format::D24UnormS8Uint))
.optimal_tiling

View File

@@ -199,6 +199,7 @@ struct Stored<T> {
struct PrivateFeatures {
shader_validation: bool,
anisotropic_filtering: bool,
texture_d24: bool,
texture_d24_s8: bool,
}