diff --git a/_release-content/migration-guides/shader_octahedral_moved.md b/_release-content/migration-guides/shader_octahedral_moved.md new file mode 100644 index 0000000000000..c36c9127011fe --- /dev/null +++ b/_release-content/migration-guides/shader_octahedral_moved.md @@ -0,0 +1,14 @@ +--- +title: "Shader `bevy_pbr::utils::{octahedral_encode, octahedral_decode, octahedral_decode_signed}` are moved" +pull_requests: [21926] +--- + +Shader functions `bevy_pbr::utils::{octahedral_encode, octahedral_decode, octahedral_decode_signed}` are moved to `bevy_render::utils::{octahedral_encode, octahedral_decode, octahedral_decode_signed}` + +```wgsl +// BEFORE +#import bevy_pbr::utils::{octahedral_encode, octahedral_decode, octahedral_decode_signed} + +// AFTER +#import bevy_render::utils::{octahedral_encode, octahedral_decode, octahedral_decode_signed} +``` diff --git a/crates/bevy_pbr/src/deferred/pbr_deferred_functions.wgsl b/crates/bevy_pbr/src/deferred/pbr_deferred_functions.wgsl index 309df85e11b2b..5ff9c31f8b075 100644 --- a/crates/bevy_pbr/src/deferred/pbr_deferred_functions.wgsl +++ b/crates/bevy_pbr/src/deferred/pbr_deferred_functions.wgsl @@ -6,10 +6,10 @@ pbr_functions, rgb9e5, mesh_view_bindings::view, - utils::{octahedral_encode, octahedral_decode}, prepass_io::FragmentOutput, view_transformations::{position_ndc_to_world, frag_coord_to_ndc}, } +#import bevy_render::utils::{octahedral_encode, octahedral_decode} #ifdef MESHLET_MESH_MATERIAL_PASS #import bevy_pbr::meshlet_visibility_buffer_resolve::VertexOutput diff --git a/crates/bevy_pbr/src/render/forward_io.wgsl b/crates/bevy_pbr/src/render/forward_io.wgsl index 096546e151961..5567a63eda085 100644 --- a/crates/bevy_pbr/src/render/forward_io.wgsl +++ b/crates/bevy_pbr/src/render/forward_io.wgsl @@ -78,6 +78,8 @@ struct Vertex { #endif }; +#ifndef MESHLET_MESH_MATERIAL_PASS + // The instance_index parameter must match vertex_in.instance_index. This is a work around for a wgpu dx12 bug. // See https://github.com/gfx-rs/naga/issues/2416 fn decompress_vertex(vertex_in: Vertex, instance_index: u32) -> UncompressedVertex { @@ -134,6 +136,8 @@ fn decompress_vertex(vertex_in: Vertex, instance_index: u32) -> UncompressedVert return uncompressed_vertex; } +#endif + struct VertexOutput { // This is `clip position` when the struct is used as a vertex stage output // and `frag coord` when used as a fragment stage input diff --git a/crates/bevy_solari/src/realtime/presample_light_tiles.wgsl b/crates/bevy_solari/src/realtime/presample_light_tiles.wgsl index 1b67a4c71f35c..805b25f2fbbaa 100644 --- a/crates/bevy_solari/src/realtime/presample_light_tiles.wgsl +++ b/crates/bevy_solari/src/realtime/presample_light_tiles.wgsl @@ -5,7 +5,7 @@ enable wgpu_ray_query; #define_import_path bevy_solari::presample_light_tiles #import bevy_pbr::rgb9e5::{vec3_to_rgb9e5_, rgb9e5_to_vec3_} -#import bevy_pbr::utils::{octahedral_encode, octahedral_decode} +#import bevy_render::utils::{octahedral_encode, octahedral_decode} #import bevy_render::view::View #import bevy_solari::sampling::{generate_random_light_sample, LightSample, ResolvedLightSample} #import bevy_solari::realtime_bindings::{light_tile_samples, light_tile_resolved_samples, view, constants, ResolvedLightSamplePacked}