diff --git a/examples/features/src/ray_cube_normals/mod.rs b/examples/features/src/ray_cube_normals/mod.rs index e44ed53aef..342afd374d 100644 --- a/examples/features/src/ray_cube_normals/mod.rs +++ b/examples/features/src/ray_cube_normals/mod.rs @@ -134,7 +134,7 @@ impl crate::framework::Example for Example { fn required_features() -> wgpu::Features { wgpu::Features::EXPERIMENTAL_RAY_QUERY | wgpu::Features::EXPERIMENTAL_RAY_TRACING_ACCELERATION_STRUCTURE - | wgpu::Features::RAY_HIT_VERTEX_RETURN + | wgpu::Features::EXPERIMENTAL_RAY_HIT_VERTEX_RETURN } fn required_downlevel_capabilities() -> wgpu::DownlevelCapabilities { diff --git a/wgpu-core/src/device/mod.rs b/wgpu-core/src/device/mod.rs index 15b8ac1756..688811f9fc 100644 --- a/wgpu-core/src/device/mod.rs +++ b/wgpu-core/src/device/mod.rs @@ -467,7 +467,7 @@ pub fn create_validator( ); caps.set( Caps::RAY_HIT_VERTEX_POSITION, - features.intersects(wgt::Features::RAY_HIT_VERTEX_RETURN), + features.intersects(wgt::Features::EXPERIMENTAL_RAY_HIT_VERTEX_RETURN), ); naga::valid::Validator::new(flags, caps) diff --git a/wgpu-core/src/device/ray_tracing.rs b/wgpu-core/src/device/ray_tracing.rs index c240897fc7..22dd26df1a 100644 --- a/wgpu-core/src/device/ray_tracing.rs +++ b/wgpu-core/src/device/ray_tracing.rs @@ -31,7 +31,7 @@ impl Device { .flags .contains(wgt::AccelerationStructureFlags::ALLOW_RAY_HIT_VERTEX_RETURN) { - self.require_features(Features::RAY_HIT_VERTEX_RETURN)?; + self.require_features(Features::EXPERIMENTAL_RAY_HIT_VERTEX_RETURN)?; } let size_info = match &sizes { @@ -126,7 +126,7 @@ impl Device { .flags .contains(wgt::AccelerationStructureFlags::ALLOW_RAY_HIT_VERTEX_RETURN) { - self.require_features(Features::RAY_HIT_VERTEX_RETURN)?; + self.require_features(Features::EXPERIMENTAL_RAY_HIT_VERTEX_RETURN)?; } let size_info = unsafe { diff --git a/wgpu-hal/src/vulkan/adapter.rs b/wgpu-hal/src/vulkan/adapter.rs index a271715b78..902111522b 100644 --- a/wgpu-hal/src/vulkan/adapter.rs +++ b/wgpu-hal/src/vulkan/adapter.rs @@ -657,7 +657,7 @@ impl PhysicalDeviceFeatures { caps.supports_extension(ext::conservative_rasterization::NAME), ); features.set( - F::RAY_HIT_VERTEX_RETURN, + F::EXPERIMENTAL_RAY_HIT_VERTEX_RETURN, caps.supports_extension(khr::ray_tracing_position_fetch::NAME), ); @@ -1041,7 +1041,7 @@ impl PhysicalDeviceProperties { extensions.push(khr::ray_query::NAME); } - if requested_features.contains(wgt::Features::RAY_HIT_VERTEX_RETURN) { + if requested_features.contains(wgt::Features::EXPERIMENTAL_RAY_HIT_VERTEX_RETURN) { extensions.push(khr::ray_tracing_position_fetch::NAME) } @@ -1913,7 +1913,7 @@ impl super::Adapter { if features.contains(wgt::Features::EXPERIMENTAL_RAY_QUERY) { capabilities.push(spv::Capability::RayQueryKHR); } - if features.contains(wgt::Features::RAY_HIT_VERTEX_RETURN) { + if features.contains(wgt::Features::EXPERIMENTAL_RAY_HIT_VERTEX_RETURN) { capabilities.push(spv::Capability::RayQueryPositionFetchKHR) } spv::Options { diff --git a/wgpu-types/src/features.rs b/wgpu-types/src/features.rs index 15fba12604..3f8f11988d 100644 --- a/wgpu-types/src/features.rs +++ b/wgpu-types/src/features.rs @@ -1121,6 +1121,10 @@ bitflags_array! { /// This is a native only feature. const TEXTURE_INT64_ATOMIC = 1 << 45; + /// ***THIS IS EXPERIMENTAL:*** Features enabled by this may have + /// major bugs in them and are expected to be subject to breaking changes, suggestions + /// for the API exposed by this should be posted on [the ray-tracing issue](https://github.com/gfx-rs/wgpu/issues/6762) + /// /// Allows for returning of hit triangles vertex position on acceleration /// structure marked with [`AccelerationStructureFlags::ALLOW_RAY_HIT_VERTEX_RETURN`]. /// @@ -1128,7 +1132,7 @@ bitflags_array! { /// - Vulkan /// /// This is a native only feature - const RAY_HIT_VERTEX_RETURN = 1 << 46; + const EXPERIMENTAL_RAY_HIT_VERTEX_RETURN = 1 << 46; } /// Features that are not guaranteed to be supported.