diff --git a/wgpu-hal/src/dx12/adapter.rs b/wgpu-hal/src/dx12/adapter.rs index edbda11d2f..550b8ab563 100644 --- a/wgpu-hal/src/dx12/adapter.rs +++ b/wgpu-hal/src/dx12/adapter.rs @@ -191,7 +191,6 @@ impl super::Adapter { let mut features = wgt::Features::empty() | wgt::Features::DEPTH_CLIP_CONTROL - | wgt::Features::DEPTH24PLUS_STENCIL8 | wgt::Features::DEPTH32FLOAT_STENCIL8 | wgt::Features::INDIRECT_FIRST_INSTANCE | wgt::Features::MAPPABLE_PRIMARY_BUFFERS diff --git a/wgpu-hal/src/metal/adapter.rs b/wgpu-hal/src/metal/adapter.rs index a8bf9b18c3..465517e25e 100644 --- a/wgpu-hal/src/metal/adapter.rs +++ b/wgpu-hal/src/metal/adapter.rs @@ -778,7 +778,6 @@ impl super::PrivateCapabilities { features.set(F::TEXTURE_COMPRESSION_ETC2, self.format_eac_etc); features.set(F::DEPTH_CLIP_CONTROL, self.supports_depth_clip_control); - features.set(F::DEPTH24PLUS_STENCIL8, self.format_depth24_stencil8); features.set( F::TEXTURE_BINDING_ARRAY diff --git a/wgpu-hal/src/vulkan/adapter.rs b/wgpu-hal/src/vulkan/adapter.rs index 0c035f6ae7..47f8d6a47e 100644 --- a/wgpu-hal/src/vulkan/adapter.rs +++ b/wgpu-hal/src/vulkan/adapter.rs @@ -481,17 +481,6 @@ impl PhysicalDeviceFeatures { ), ); - features.set( - F::DEPTH24PLUS_STENCIL8, - supports_format( - instance, - phd, - vk::Format::D24_UNORM_S8_UINT, - vk::ImageTiling::OPTIMAL, - vk::FormatFeatureFlags::DEPTH_STENCIL_ATTACHMENT, - ), - ); - (features, dl_flags) } diff --git a/wgpu-types/src/lib.rs b/wgpu-types/src/lib.rs index ec5b0dd8a3..f057deb43f 100644 --- a/wgpu-types/src/lib.rs +++ b/wgpu-types/src/lib.rs @@ -188,15 +188,6 @@ bitflags::bitflags! { /// /// This is a web and native feature. const DEPTH_CLIP_CONTROL = 1 << 0; - /// Allows for explicit creation of textures of format [`TextureFormat::Depth24PlusStencil8`] - /// - /// Supported platforms: - /// - Vulkan (some) - /// - DX12 - /// - Metal (Macs with amd GPUs) - /// - /// This is a web and native feature. - const DEPTH24PLUS_STENCIL8 = 1 << 1; /// Allows for explicit creation of textures of format [`TextureFormat::Depth32FloatStencil8`] /// /// Supported platforms: @@ -2291,7 +2282,6 @@ impl TextureFormat { let astc_hdr = Features::TEXTURE_COMPRESSION_ASTC_HDR; let norm16bit = Features::TEXTURE_FORMAT_16BIT_NORM; let d32_s8 = Features::DEPTH32FLOAT_STENCIL8; - let d24_s8 = Features::DEPTH24PLUS_STENCIL8; // Sample Types let uint = TextureSampleType::Uint; @@ -2376,7 +2366,7 @@ impl TextureFormat { // Depth-stencil textures Self::Depth16Unorm => ( native, depth, linear, msaa, (1, 1), 2, attachment, 1), Self::Depth24Plus => ( native, depth, linear, msaa, (1, 1), 4, attachment, 1), - Self::Depth24PlusStencil8 => ( d24_s8, depth, linear, msaa, (1, 1), 4, attachment, 2), + Self::Depth24PlusStencil8 => ( native, depth, linear, msaa, (1, 1), 4, attachment, 2), Self::Depth32Float => ( native, depth, linear, msaa, (1, 1), 4, attachment, 1), Self::Depth32FloatStencil8 =>( d32_s8, depth, linear, msaa, (1, 1), 4, attachment, 2), // Packed uncompressed diff --git a/wgpu/tests/clear_texture.rs b/wgpu/tests/clear_texture.rs index 9abf7e043d..abe86cac43 100644 --- a/wgpu/tests/clear_texture.rs +++ b/wgpu/tests/clear_texture.rs @@ -44,6 +44,7 @@ static TEXTURE_FORMATS_DEPTH: &[wgpu::TextureFormat] = &[ //wgpu::TextureFormat::Stencil8, wgpu::TextureFormat::Depth16Unorm, wgpu::TextureFormat::Depth24Plus, + wgpu::TextureFormat::Depth24PlusStencil8, ]; // needs TEXTURE_COMPRESSION_BC @@ -329,22 +330,6 @@ fn clear_texture_d32_s8() { ) } -#[test] -fn clear_texture_d24_s8() { - initialize_test( - TestParameters::default() - .features(wgpu::Features::CLEAR_TEXTURE | wgpu::Features::DEPTH24PLUS_STENCIL8), - |ctx| { - clear_texture_tests( - &ctx, - &[wgpu::TextureFormat::Depth24PlusStencil8], - false, - false, - ); - }, - ) -} - #[test] fn clear_texture_2d_bc() { initialize_test( diff --git a/wgpu/tests/zero_init_texture_after_discard.rs b/wgpu/tests/zero_init_texture_after_discard.rs index 9307bc7fbd..6043d0388f 100644 --- a/wgpu/tests/zero_init_texture_after_discard.rs +++ b/wgpu/tests/zero_init_texture_after_discard.rs @@ -110,58 +110,55 @@ fn discarding_depth_target_resets_texture_init_state_check_visible_on_copy_in_sa #[test] fn discarding_either_depth_or_stencil_aspect() { - initialize_test( - TestParameters::default().features(wgpu::Features::DEPTH24PLUS_STENCIL8), - |ctx| { - let (texture, _) = create_white_texture_and_readback_buffer( - &ctx, - wgpu::TextureFormat::Depth24PlusStencil8, - ); - // TODO: How do we test this other than "doesn't crash"? We can't copy the texture to/from buffers, so we would need to do a copy in a shader - { - let mut encoder = ctx - .device - .create_command_encoder(&wgpu::CommandEncoderDescriptor::default()); - encoder.begin_render_pass(&wgpu::RenderPassDescriptor { - label: Some("Depth Discard, Stencil Load"), - color_attachments: &[], - depth_stencil_attachment: Some(wgpu::RenderPassDepthStencilAttachment { - view: &texture.create_view(&wgpu::TextureViewDescriptor::default()), - depth_ops: Some(wgpu::Operations { - load: wgpu::LoadOp::Load, - store: false, // discard! - }), - stencil_ops: Some(wgpu::Operations { - load: wgpu::LoadOp::Clear(0), - store: true, - }), + initialize_test(TestParameters::default(), |ctx| { + let (texture, _) = create_white_texture_and_readback_buffer( + &ctx, + wgpu::TextureFormat::Depth24PlusStencil8, + ); + // TODO: How do we test this other than "doesn't crash"? We can't copy the texture to/from buffers, so we would need to do a copy in a shader + { + let mut encoder = ctx + .device + .create_command_encoder(&wgpu::CommandEncoderDescriptor::default()); + encoder.begin_render_pass(&wgpu::RenderPassDescriptor { + label: Some("Depth Discard, Stencil Load"), + color_attachments: &[], + depth_stencil_attachment: Some(wgpu::RenderPassDepthStencilAttachment { + view: &texture.create_view(&wgpu::TextureViewDescriptor::default()), + depth_ops: Some(wgpu::Operations { + load: wgpu::LoadOp::Load, + store: false, // discard! }), - }); - ctx.queue.submit([encoder.finish()]); - } - { - let mut encoder = ctx - .device - .create_command_encoder(&wgpu::CommandEncoderDescriptor::default()); - encoder.begin_render_pass(&wgpu::RenderPassDescriptor { - label: Some("Depth Load, Stencil Discard"), - color_attachments: &[], - depth_stencil_attachment: Some(wgpu::RenderPassDepthStencilAttachment { - view: &texture.create_view(&wgpu::TextureViewDescriptor::default()), - depth_ops: Some(wgpu::Operations { - load: wgpu::LoadOp::Clear(0.0), - store: true, - }), - stencil_ops: Some(wgpu::Operations { - load: wgpu::LoadOp::Load, - store: false, // discard! - }), + stencil_ops: Some(wgpu::Operations { + load: wgpu::LoadOp::Clear(0), + store: true, }), - }); - ctx.queue.submit([encoder.finish()]); - } - }, - ); + }), + }); + ctx.queue.submit([encoder.finish()]); + } + { + let mut encoder = ctx + .device + .create_command_encoder(&wgpu::CommandEncoderDescriptor::default()); + encoder.begin_render_pass(&wgpu::RenderPassDescriptor { + label: Some("Depth Load, Stencil Discard"), + color_attachments: &[], + depth_stencil_attachment: Some(wgpu::RenderPassDepthStencilAttachment { + view: &texture.create_view(&wgpu::TextureViewDescriptor::default()), + depth_ops: Some(wgpu::Operations { + load: wgpu::LoadOp::Clear(0.0), + store: true, + }), + stencil_ops: Some(wgpu::Operations { + load: wgpu::LoadOp::Load, + store: false, // discard! + }), + }), + }); + ctx.queue.submit([encoder.finish()]); + } + }); } const TEXTURE_SIZE: wgpu::Extent3d = wgpu::Extent3d {