From d87484f6fa291419b5c0d4ee20ec0dc040f9af38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kurt=20K=C3=BChnert?= Date: Fri, 16 Dec 2022 11:41:22 +0100 Subject: [PATCH 1/2] renamed type names Render{Device, Queue, Adapter, AdapterInfo, Instance, Context} to Gpu{Device, Queue, Adapter, AdapterInfo, Instance, Context} renamed variable names render_{device, queue, adapter, adapter_info, instance, context} to gpu_{device, queue, adapter, adapter_info, instance, context} renamed occurrences of the variable name `device` that refer to a `GPUDevice` to `gpu_device` renamed occurrences of the variable name `queue` that refer to a `GPUQueue` to `gpu_queue` type aliased GpuCommandEncoder renamed GpuContext::command_encoder to GpuContext::gpu_command_encoder --- crates/bevy_core_pipeline/src/bloom/mod.rs | 77 +++++++++---------- .../src/core_2d/main_pass_2d_node.rs | 12 +-- .../src/core_3d/main_pass_3d_node.rs | 26 +++---- crates/bevy_core_pipeline/src/core_3d/mod.rs | 6 +- crates/bevy_core_pipeline/src/fxaa/mod.rs | 4 +- crates/bevy_core_pipeline/src/fxaa/node.rs | 55 +++++++------ .../bevy_core_pipeline/src/tonemapping/mod.rs | 4 +- .../src/tonemapping/node.rs | 45 ++++++----- .../bevy_core_pipeline/src/upscaling/mod.rs | 47 ++++++----- .../bevy_core_pipeline/src/upscaling/node.rs | 45 ++++++----- crates/bevy_gltf/src/loader.rs | 6 +- crates/bevy_internal/src/lib.rs | 6 +- crates/bevy_pbr/src/light.rs | 10 +-- crates/bevy_pbr/src/material.rs | 28 ++----- crates/bevy_pbr/src/render/light.rs | 64 +++++++-------- crates/bevy_pbr/src/render/mesh.rs | 71 +++++++++-------- .../bevy_render/macros/src/as_bind_group.rs | 14 ++-- .../src/camera/camera_driver_node.rs | 8 +- crates/bevy_render/src/extract_component.rs | 8 +- crates/bevy_render/src/globals.rs | 10 +-- crates/bevy_render/src/lib.rs | 31 ++++---- crates/bevy_render/src/mesh/mesh/mod.rs | 10 +-- crates/bevy_render/src/render_graph/graph.rs | 14 ++-- crates/bevy_render/src/render_graph/node.rs | 8 +- crates/bevy_render/src/render_phase/mod.rs | 4 +- .../src/render_resource/bind_group.rs | 8 +- .../src/render_resource/buffer_vec.rs | 24 +++--- crates/bevy_render/src/render_resource/mod.rs | 18 ++--- .../src/render_resource/pipeline.rs | 4 +- .../src/render_resource/pipeline_cache.rs | 39 +++++----- .../src/render_resource/storage_buffer.rs | 18 ++--- .../src/render_resource/texture.rs | 4 +- .../src/render_resource/uniform_buffer.rs | 22 +++--- .../{render_device.rs => gpu_device.rs} | 18 ++--- .../bevy_render/src/renderer/graph_runner.rs | 24 +++--- crates/bevy_render/src/renderer/mod.rs | 52 +++++++------ crates/bevy_render/src/settings.rs | 4 +- .../bevy_render/src/texture/fallback_image.rs | 15 ++-- crates/bevy_render/src/texture/image.rs | 19 ++--- .../src/texture/image_texture_loader.rs | 6 +- crates/bevy_render/src/texture/mod.rs | 6 +- .../bevy_render/src/texture/texture_cache.rs | 8 +- crates/bevy_render/src/view/mod.rs | 18 ++--- crates/bevy_render/src/view/window.rs | 22 +++--- crates/bevy_sprite/src/mesh2d/material.rs | 28 ++----- crates/bevy_sprite/src/mesh2d/mesh.rs | 26 +++---- crates/bevy_sprite/src/render/mod.rs | 32 ++++---- crates/bevy_ui/src/render/mod.rs | 14 ++-- crates/bevy_ui/src/render/pipeline.rs | 8 +- crates/bevy_ui/src/render/render_pass.rs | 6 +- examples/3d/skybox.rs | 15 ++-- .../shader/compute_shader_game_of_life.rs | 14 ++-- examples/shader/shader_instancing.rs | 6 +- 53 files changed, 525 insertions(+), 566 deletions(-) rename crates/bevy_render/src/renderer/{render_device.rs => gpu_device.rs} (94%) diff --git a/crates/bevy_core_pipeline/src/bloom/mod.rs b/crates/bevy_core_pipeline/src/bloom/mod.rs index 0700c3b16b3ae..7c82fa094a6ef 100644 --- a/crates/bevy_core_pipeline/src/bloom/mod.rs +++ b/crates/bevy_core_pipeline/src/bloom/mod.rs @@ -19,7 +19,7 @@ use bevy_render::{ render_graph::{Node, NodeRunError, RenderGraph, RenderGraphContext, SlotInfo, SlotType}, render_phase::TrackedRenderPass, render_resource::*, - renderer::{RenderContext, RenderDevice}, + renderer::{GpuContext, GpuDevice}, texture::{CachedTexture, TextureCache}, view::ViewTarget, RenderApp, RenderStage, @@ -200,7 +200,7 @@ impl Node for BloomNode { fn run( &self, graph: &mut RenderGraphContext, - render_context: &mut RenderContext, + gpu_context: &mut GpuContext, world: &World, ) -> Result<(), NodeRunError> { #[cfg(feature = "trace")] @@ -232,7 +232,7 @@ impl Node for BloomNode { { let view = &BloomTextures::texture_view(&textures.texture_a, 0); let mut prefilter_pass = - TrackedRenderPass::new(render_context.command_encoder.begin_render_pass( + TrackedRenderPass::new(gpu_context.gpu_command_encoder.begin_render_pass( &RenderPassDescriptor { label: Some("bloom_prefilter_pass"), color_attachments: &[Some(RenderPassColorAttachment { @@ -258,7 +258,7 @@ impl Node for BloomNode { for mip in 1..textures.mip_count { let view = &BloomTextures::texture_view(&textures.texture_a, mip); let mut downsampling_pass = - TrackedRenderPass::new(render_context.command_encoder.begin_render_pass( + TrackedRenderPass::new(gpu_context.gpu_command_encoder.begin_render_pass( &RenderPassDescriptor { label: Some("bloom_downsampling_pass"), color_attachments: &[Some(RenderPassColorAttachment { @@ -284,7 +284,7 @@ impl Node for BloomNode { for mip in (1..textures.mip_count).rev() { let view = &BloomTextures::texture_view(&textures.texture_b, mip - 1); let mut upsampling_pass = - TrackedRenderPass::new(render_context.command_encoder.begin_render_pass( + TrackedRenderPass::new(gpu_context.gpu_command_encoder.begin_render_pass( &RenderPassDescriptor { label: Some("bloom_upsampling_pass"), color_attachments: &[Some(RenderPassColorAttachment { @@ -309,7 +309,7 @@ impl Node for BloomNode { { let mut upsampling_final_pass = - TrackedRenderPass::new(render_context.command_encoder.begin_render_pass( + TrackedRenderPass::new(gpu_context.gpu_command_encoder.begin_render_pass( &RenderPassDescriptor { label: Some("bloom_upsampling_final_pass"), color_attachments: &[Some(view_target.get_unsampled_color_attachment( @@ -350,9 +350,9 @@ struct BloomPipelines { impl FromWorld for BloomPipelines { fn from_world(world: &mut World) -> Self { - let render_device = world.resource::(); + let gpu_device = world.resource::(); - let sampler = render_device.create_sampler(&SamplerDescriptor { + let sampler = gpu_device.create_sampler(&SamplerDescriptor { min_filter: FilterMode::Linear, mag_filter: FilterMode::Linear, address_mode_u: AddressMode::ClampToEdge, @@ -361,7 +361,7 @@ impl FromWorld for BloomPipelines { }); let downsampling_bind_group_layout = - render_device.create_bind_group_layout(&BindGroupLayoutDescriptor { + gpu_device.create_bind_group_layout(&BindGroupLayoutDescriptor { label: Some("bloom_downsampling_bind_group_layout"), entries: &[ // Upsampled input texture (downsampled for final upsample) @@ -397,7 +397,7 @@ impl FromWorld for BloomPipelines { }); let upsampling_bind_group_layout = - render_device.create_bind_group_layout(&BindGroupLayoutDescriptor { + gpu_device.create_bind_group_layout(&BindGroupLayoutDescriptor { label: Some("bloom_upsampling_bind_group_layout"), entries: &[ // Downsampled input texture @@ -563,7 +563,7 @@ impl BloomTextures { fn prepare_bloom_textures( mut commands: Commands, mut texture_cache: ResMut, - render_device: Res, + gpu_device: Res, views: Query<(Entity, &ExtractedCamera), With>, ) { let mut texture_as = HashMap::default(); @@ -594,13 +594,13 @@ fn prepare_bloom_textures( texture_descriptor.label = Some("bloom_texture_a"); let texture_a = texture_as .entry(camera.target.clone()) - .or_insert_with(|| texture_cache.get(&render_device, texture_descriptor.clone())) + .or_insert_with(|| texture_cache.get(&gpu_device, texture_descriptor.clone())) .clone(); texture_descriptor.label = Some("bloom_texture_b"); let texture_b = texture_bs .entry(camera.target.clone()) - .or_insert_with(|| texture_cache.get(&render_device, texture_descriptor)) + .or_insert_with(|| texture_cache.get(&gpu_device, texture_descriptor)) .clone(); commands.entity(entity).insert(BloomTextures { @@ -633,14 +633,14 @@ struct BloomBindGroups { fn queue_bloom_bind_groups( mut commands: Commands, - render_device: Res, + gpu_device: Res, pipelines: Res, uniforms: Res>, views: Query<(Entity, &ViewTarget, &BloomTextures)>, ) { if let Some(uniforms) = uniforms.binding() { for (entity, view_target, textures) in &views { - let prefilter_bind_group = render_device.create_bind_group(&BindGroupDescriptor { + let prefilter_bind_group = gpu_device.create_bind_group(&BindGroupDescriptor { label: Some("bloom_prefilter_bind_group"), layout: &pipelines.downsampling_bind_group_layout, entries: &[ @@ -663,7 +663,7 @@ fn queue_bloom_bind_groups( let mut downsampling_bind_groups = Vec::with_capacity(bind_group_count); for mip in 1..textures.mip_count { - let bind_group = render_device.create_bind_group(&BindGroupDescriptor { + let bind_group = gpu_device.create_bind_group(&BindGroupDescriptor { label: Some("bloom_downsampling_bind_group"), layout: &pipelines.downsampling_bind_group_layout, entries: &[ @@ -700,7 +700,7 @@ fn queue_bloom_bind_groups( mip, ); - let bind_group = render_device.create_bind_group(&BindGroupDescriptor { + let bind_group = gpu_device.create_bind_group(&BindGroupDescriptor { label: Some("bloom_upsampling_bind_group"), layout: &pipelines.upsampling_bind_group_layout, entries: &[ @@ -726,28 +726,27 @@ fn queue_bloom_bind_groups( upsampling_bind_groups.push(bind_group); } - let upsampling_final_bind_group = - render_device.create_bind_group(&BindGroupDescriptor { - label: Some("bloom_upsampling_final_bind_group"), - layout: &pipelines.downsampling_bind_group_layout, - entries: &[ - BindGroupEntry { - binding: 0, - resource: BindingResource::TextureView(&BloomTextures::texture_view( - &textures.texture_b, - 0, - )), - }, - BindGroupEntry { - binding: 1, - resource: BindingResource::Sampler(&pipelines.sampler), - }, - BindGroupEntry { - binding: 2, - resource: uniforms.clone(), - }, - ], - }); + let upsampling_final_bind_group = gpu_device.create_bind_group(&BindGroupDescriptor { + label: Some("bloom_upsampling_final_bind_group"), + layout: &pipelines.downsampling_bind_group_layout, + entries: &[ + BindGroupEntry { + binding: 0, + resource: BindingResource::TextureView(&BloomTextures::texture_view( + &textures.texture_b, + 0, + )), + }, + BindGroupEntry { + binding: 1, + resource: BindingResource::Sampler(&pipelines.sampler), + }, + BindGroupEntry { + binding: 2, + resource: uniforms.clone(), + }, + ], + }); commands.entity(entity).insert(BloomBindGroups { prefilter_bind_group, diff --git a/crates/bevy_core_pipeline/src/core_2d/main_pass_2d_node.rs b/crates/bevy_core_pipeline/src/core_2d/main_pass_2d_node.rs index 2a262b426195b..9f10b8f0b7384 100644 --- a/crates/bevy_core_pipeline/src/core_2d/main_pass_2d_node.rs +++ b/crates/bevy_core_pipeline/src/core_2d/main_pass_2d_node.rs @@ -9,7 +9,7 @@ use bevy_render::{ render_graph::{Node, NodeRunError, RenderGraphContext, SlotInfo, SlotType}, render_phase::RenderPhase, render_resource::{LoadOp, Operations, RenderPassDescriptor}, - renderer::RenderContext, + renderer::GpuContext, view::{ExtractedView, ViewTarget}, }; #[cfg(feature = "trace")] @@ -49,7 +49,7 @@ impl Node for MainPass2dNode { fn run( &self, graph: &mut RenderGraphContext, - render_context: &mut RenderContext, + gpu_context: &mut GpuContext, world: &World, ) -> Result<(), NodeRunError> { let view_entity = graph.get_input_entity(Self::IN_VIEW)?; @@ -78,8 +78,8 @@ impl Node for MainPass2dNode { depth_stencil_attachment: None, }; - let render_pass = render_context - .command_encoder + let render_pass = gpu_context + .gpu_command_encoder .begin_render_pass(&pass_descriptor); let mut render_pass = TrackedRenderPass::new(render_pass); @@ -105,8 +105,8 @@ impl Node for MainPass2dNode { depth_stencil_attachment: None, }; - render_context - .command_encoder + gpu_context + .gpu_command_encoder .begin_render_pass(&pass_descriptor); } diff --git a/crates/bevy_core_pipeline/src/core_3d/main_pass_3d_node.rs b/crates/bevy_core_pipeline/src/core_3d/main_pass_3d_node.rs index 1067643e03b12..393094eed214c 100644 --- a/crates/bevy_core_pipeline/src/core_3d/main_pass_3d_node.rs +++ b/crates/bevy_core_pipeline/src/core_3d/main_pass_3d_node.rs @@ -9,7 +9,7 @@ use bevy_render::{ render_graph::{Node, NodeRunError, RenderGraphContext, SlotInfo, SlotType}, render_phase::RenderPhase, render_resource::{LoadOp, Operations, RenderPassDepthStencilAttachment, RenderPassDescriptor}, - renderer::RenderContext, + renderer::GpuContext, view::{ExtractedView, ViewDepthTexture, ViewTarget}, }; #[cfg(feature = "trace")] @@ -52,7 +52,7 @@ impl Node for MainPass3dNode { fn run( &self, graph: &mut RenderGraphContext, - render_context: &mut RenderContext, + gpu_context: &mut GpuContext, world: &World, ) -> Result<(), NodeRunError> { let view_entity = graph.get_input_entity(Self::IN_VIEW)?; @@ -67,7 +67,7 @@ impl Node for MainPass3dNode { // Always run opaque pass to ensure screen is cleared { // Run the opaque pass, sorted front-to-back - // NOTE: Scoped to drop the mutable borrow of render_context + // NOTE: Scoped to drop the mutable borrow of gpu_context #[cfg(feature = "trace")] let _main_opaque_pass_3d_span = info_span!("main_opaque_pass_3d").entered(); let pass_descriptor = RenderPassDescriptor { @@ -96,8 +96,8 @@ impl Node for MainPass3dNode { }), }; - let render_pass = render_context - .command_encoder + let render_pass = gpu_context + .gpu_command_encoder .begin_render_pass(&pass_descriptor); let mut render_pass = TrackedRenderPass::new(render_pass); @@ -110,7 +110,7 @@ impl Node for MainPass3dNode { if !alpha_mask_phase.items.is_empty() { // Run the alpha mask pass, sorted front-to-back - // NOTE: Scoped to drop the mutable borrow of render_context + // NOTE: Scoped to drop the mutable borrow of gpu_context #[cfg(feature = "trace")] let _main_alpha_mask_pass_3d_span = info_span!("main_alpha_mask_pass_3d").entered(); let pass_descriptor = RenderPassDescriptor { @@ -131,8 +131,8 @@ impl Node for MainPass3dNode { }), }; - let render_pass = render_context - .command_encoder + let render_pass = gpu_context + .gpu_command_encoder .begin_render_pass(&pass_descriptor); let mut render_pass = TrackedRenderPass::new(render_pass); @@ -145,7 +145,7 @@ impl Node for MainPass3dNode { if !transparent_phase.items.is_empty() { // Run the transparent pass, sorted back-to-front - // NOTE: Scoped to drop the mutable borrow of render_context + // NOTE: Scoped to drop the mutable borrow of gpu_context #[cfg(feature = "trace")] let _main_transparent_pass_3d_span = info_span!("main_transparent_pass_3d").entered(); let pass_descriptor = RenderPassDescriptor { @@ -171,8 +171,8 @@ impl Node for MainPass3dNode { }), }; - let render_pass = render_context - .command_encoder + let render_pass = gpu_context + .gpu_command_encoder .begin_render_pass(&pass_descriptor); let mut render_pass = TrackedRenderPass::new(render_pass); @@ -198,8 +198,8 @@ impl Node for MainPass3dNode { depth_stencil_attachment: None, }; - render_context - .command_encoder + gpu_context + .gpu_command_encoder .begin_render_pass(&pass_descriptor); } diff --git a/crates/bevy_core_pipeline/src/core_3d/mod.rs b/crates/bevy_core_pipeline/src/core_3d/mod.rs index 34a430a345398..8855f8b1ebda7 100644 --- a/crates/bevy_core_pipeline/src/core_3d/mod.rs +++ b/crates/bevy_core_pipeline/src/core_3d/mod.rs @@ -36,7 +36,7 @@ use bevy_render::{ CachedRenderPipelineId, Extent3d, TextureDescriptor, TextureDimension, TextureFormat, TextureUsages, }, - renderer::RenderDevice, + renderer::GpuDevice, texture::TextureCache, view::ViewDepthTexture, Extract, RenderApp, RenderStage, @@ -251,7 +251,7 @@ pub fn prepare_core_3d_depth_textures( mut commands: Commands, mut texture_cache: ResMut, msaa: Res, - render_device: Res, + gpu_device: Res, views_3d: Query< (Entity, &ExtractedCamera), ( @@ -268,7 +268,7 @@ pub fn prepare_core_3d_depth_textures( .entry(camera.target.clone()) .or_insert_with(|| { texture_cache.get( - &render_device, + &gpu_device, TextureDescriptor { label: Some("view_depth_texture"), size: Extent3d { diff --git a/crates/bevy_core_pipeline/src/fxaa/mod.rs b/crates/bevy_core_pipeline/src/fxaa/mod.rs index f49425e7250c4..aac59b305b9d2 100644 --- a/crates/bevy_core_pipeline/src/fxaa/mod.rs +++ b/crates/bevy_core_pipeline/src/fxaa/mod.rs @@ -9,7 +9,7 @@ use bevy_render::{ prelude::Camera, render_graph::RenderGraph, render_resource::*, - renderer::RenderDevice, + renderer::GpuDevice, texture::BevyDefault, view::{ExtractedView, ViewTarget}, RenderApp, RenderStage, @@ -153,7 +153,7 @@ pub struct FxaaPipeline { impl FromWorld for FxaaPipeline { fn from_world(render_world: &mut World) -> Self { let texture_bind_group = render_world - .resource::() + .resource::() .create_bind_group_layout(&BindGroupLayoutDescriptor { label: Some("fxaa_texture_bind_group_layout"), entries: &[ diff --git a/crates/bevy_core_pipeline/src/fxaa/node.rs b/crates/bevy_core_pipeline/src/fxaa/node.rs index 6e12151c2fe63..2757d1c3c57ff 100644 --- a/crates/bevy_core_pipeline/src/fxaa/node.rs +++ b/crates/bevy_core_pipeline/src/fxaa/node.rs @@ -10,7 +10,7 @@ use bevy_render::{ PipelineCache, RenderPassColorAttachment, RenderPassDescriptor, SamplerDescriptor, TextureViewId, }, - renderer::RenderContext, + renderer::GpuContext, view::{ExtractedView, ViewTarget}, }; use bevy_utils::default; @@ -50,7 +50,7 @@ impl Node for FxaaNode { fn run( &self, graph: &mut RenderGraphContext, - render_context: &mut RenderContext, + gpu_context: &mut GpuContext, world: &World, ) -> Result<(), NodeRunError> { let view_entity = graph.get_input_entity(Self::IN_VIEW)?; @@ -77,33 +77,30 @@ impl Node for FxaaNode { let bind_group = match &mut *cached_bind_group { Some((id, bind_group)) if source.id() == *id => bind_group, cached_bind_group => { - let sampler = render_context - .render_device - .create_sampler(&SamplerDescriptor { - mipmap_filter: FilterMode::Linear, - mag_filter: FilterMode::Linear, - min_filter: FilterMode::Linear, - ..default() + let sampler = gpu_context.gpu_device.create_sampler(&SamplerDescriptor { + mipmap_filter: FilterMode::Linear, + mag_filter: FilterMode::Linear, + min_filter: FilterMode::Linear, + ..default() + }); + + let bind_group = gpu_context + .gpu_device + .create_bind_group(&BindGroupDescriptor { + label: None, + layout: &fxaa_pipeline.texture_bind_group, + entries: &[ + BindGroupEntry { + binding: 0, + resource: BindingResource::TextureView(source), + }, + BindGroupEntry { + binding: 1, + resource: BindingResource::Sampler(&sampler), + }, + ], }); - let bind_group = - render_context - .render_device - .create_bind_group(&BindGroupDescriptor { - label: None, - layout: &fxaa_pipeline.texture_bind_group, - entries: &[ - BindGroupEntry { - binding: 0, - resource: BindingResource::TextureView(source), - }, - BindGroupEntry { - binding: 1, - resource: BindingResource::Sampler(&sampler), - }, - ], - }); - let (_, bind_group) = cached_bind_group.insert((source.id(), bind_group)); bind_group } @@ -119,8 +116,8 @@ impl Node for FxaaNode { depth_stencil_attachment: None, }; - let mut render_pass = render_context - .command_encoder + let mut render_pass = gpu_context + .gpu_command_encoder .begin_render_pass(&pass_descriptor); render_pass.set_pipeline(pipeline); diff --git a/crates/bevy_core_pipeline/src/tonemapping/mod.rs b/crates/bevy_core_pipeline/src/tonemapping/mod.rs index 785c231a43fb9..f912743019cdb 100644 --- a/crates/bevy_core_pipeline/src/tonemapping/mod.rs +++ b/crates/bevy_core_pipeline/src/tonemapping/mod.rs @@ -6,7 +6,7 @@ use bevy_ecs::query::QueryItem; use bevy_reflect::{Reflect, TypeUuid}; use bevy_render::camera::Camera; use bevy_render::extract_component::{ExtractComponent, ExtractComponentPlugin}; -use bevy_render::renderer::RenderDevice; +use bevy_render::renderer::GpuDevice; use bevy_render::view::ViewTarget; use bevy_render::{render_resource::*, RenderApp, RenderStage}; @@ -92,7 +92,7 @@ impl SpecializedRenderPipeline for TonemappingPipeline { impl FromWorld for TonemappingPipeline { fn from_world(render_world: &mut World) -> Self { let tonemap_texture_bind_group = render_world - .resource::() + .resource::() .create_bind_group_layout(&BindGroupLayoutDescriptor { label: Some("tonemapping_hdr_texture_bind_group_layout"), entries: &[ diff --git a/crates/bevy_core_pipeline/src/tonemapping/node.rs b/crates/bevy_core_pipeline/src/tonemapping/node.rs index f9edf882c73fa..57728075850e5 100644 --- a/crates/bevy_core_pipeline/src/tonemapping/node.rs +++ b/crates/bevy_core_pipeline/src/tonemapping/node.rs @@ -10,7 +10,7 @@ use bevy_render::{ PipelineCache, RenderPassColorAttachment, RenderPassDescriptor, SamplerDescriptor, TextureViewId, }, - renderer::RenderContext, + renderer::GpuContext, view::{ExtractedView, ViewTarget}, }; @@ -42,7 +42,7 @@ impl Node for TonemappingNode { fn run( &self, graph: &mut RenderGraphContext, - render_context: &mut RenderContext, + gpu_context: &mut GpuContext, world: &World, ) -> Result<(), NodeRunError> { let view_entity = graph.get_input_entity(Self::IN_VIEW)?; @@ -71,27 +71,26 @@ impl Node for TonemappingNode { let bind_group = match &mut *cached_bind_group { Some((id, bind_group)) if source.id() == *id => bind_group, cached_bind_group => { - let sampler = render_context - .render_device + let sampler = gpu_context + .gpu_device .create_sampler(&SamplerDescriptor::default()); - let bind_group = - render_context - .render_device - .create_bind_group(&BindGroupDescriptor { - label: None, - layout: &tonemapping_pipeline.texture_bind_group, - entries: &[ - BindGroupEntry { - binding: 0, - resource: BindingResource::TextureView(source), - }, - BindGroupEntry { - binding: 1, - resource: BindingResource::Sampler(&sampler), - }, - ], - }); + let bind_group = gpu_context + .gpu_device + .create_bind_group(&BindGroupDescriptor { + label: None, + layout: &tonemapping_pipeline.texture_bind_group, + entries: &[ + BindGroupEntry { + binding: 0, + resource: BindingResource::TextureView(source), + }, + BindGroupEntry { + binding: 1, + resource: BindingResource::Sampler(&sampler), + }, + ], + }); let (_, bind_group) = cached_bind_group.insert((source.id(), bind_group)); bind_group @@ -111,8 +110,8 @@ impl Node for TonemappingNode { depth_stencil_attachment: None, }; - let mut render_pass = render_context - .command_encoder + let mut render_pass = gpu_context + .gpu_command_encoder .begin_render_pass(&pass_descriptor); render_pass.set_pipeline(pipeline); diff --git a/crates/bevy_core_pipeline/src/upscaling/mod.rs b/crates/bevy_core_pipeline/src/upscaling/mod.rs index b8fa9718d000f..41f6ba97cb75a 100644 --- a/crates/bevy_core_pipeline/src/upscaling/mod.rs +++ b/crates/bevy_core_pipeline/src/upscaling/mod.rs @@ -3,7 +3,7 @@ use bevy_app::prelude::*; use bevy_asset::{load_internal_asset, HandleUntyped}; use bevy_ecs::prelude::*; use bevy_reflect::TypeUuid; -use bevy_render::renderer::RenderDevice; +use bevy_render::renderer::GpuDevice; use bevy_render::view::ViewTarget; use bevy_render::{render_resource::*, RenderApp, RenderStage}; @@ -41,30 +41,29 @@ pub struct UpscalingPipeline { impl FromWorld for UpscalingPipeline { fn from_world(render_world: &mut World) -> Self { - let render_device = render_world.resource::(); - - let texture_bind_group = - render_device.create_bind_group_layout(&BindGroupLayoutDescriptor { - label: Some("upscaling_texture_bind_group_layout"), - entries: &[ - BindGroupLayoutEntry { - binding: 0, - visibility: ShaderStages::FRAGMENT, - ty: BindingType::Texture { - sample_type: TextureSampleType::Float { filterable: false }, - view_dimension: TextureViewDimension::D2, - multisampled: false, - }, - count: None, + let gpu_device = render_world.resource::(); + + let texture_bind_group = gpu_device.create_bind_group_layout(&BindGroupLayoutDescriptor { + label: Some("upscaling_texture_bind_group_layout"), + entries: &[ + BindGroupLayoutEntry { + binding: 0, + visibility: ShaderStages::FRAGMENT, + ty: BindingType::Texture { + sample_type: TextureSampleType::Float { filterable: false }, + view_dimension: TextureViewDimension::D2, + multisampled: false, }, - BindGroupLayoutEntry { - binding: 1, - visibility: ShaderStages::FRAGMENT, - ty: BindingType::Sampler(SamplerBindingType::NonFiltering), - count: None, - }, - ], - }); + count: None, + }, + BindGroupLayoutEntry { + binding: 1, + visibility: ShaderStages::FRAGMENT, + ty: BindingType::Sampler(SamplerBindingType::NonFiltering), + count: None, + }, + ], + }); UpscalingPipeline { texture_bind_group } } diff --git a/crates/bevy_core_pipeline/src/upscaling/node.rs b/crates/bevy_core_pipeline/src/upscaling/node.rs index 895c3e5e1b0a2..94145a31187c1 100644 --- a/crates/bevy_core_pipeline/src/upscaling/node.rs +++ b/crates/bevy_core_pipeline/src/upscaling/node.rs @@ -9,7 +9,7 @@ use bevy_render::{ PipelineCache, RenderPassColorAttachment, RenderPassDescriptor, SamplerDescriptor, TextureViewId, }, - renderer::RenderContext, + renderer::GpuContext, view::{ExtractedView, ViewTarget}, }; @@ -43,7 +43,7 @@ impl Node for UpscalingNode { fn run( &self, graph: &mut RenderGraphContext, - render_context: &mut RenderContext, + gpu_context: &mut GpuContext, world: &World, ) -> Result<(), NodeRunError> { let view_entity = graph.get_input_entity(Self::IN_VIEW)?; @@ -62,27 +62,26 @@ impl Node for UpscalingNode { let bind_group = match &mut *cached_bind_group { Some((id, bind_group)) if upscaled_texture.id() == *id => bind_group, cached_bind_group => { - let sampler = render_context - .render_device + let sampler = gpu_context + .gpu_device .create_sampler(&SamplerDescriptor::default()); - let bind_group = - render_context - .render_device - .create_bind_group(&BindGroupDescriptor { - label: None, - layout: &upscaling_pipeline.texture_bind_group, - entries: &[ - BindGroupEntry { - binding: 0, - resource: BindingResource::TextureView(upscaled_texture), - }, - BindGroupEntry { - binding: 1, - resource: BindingResource::Sampler(&sampler), - }, - ], - }); + let bind_group = gpu_context + .gpu_device + .create_bind_group(&BindGroupDescriptor { + label: None, + layout: &upscaling_pipeline.texture_bind_group, + entries: &[ + BindGroupEntry { + binding: 0, + resource: BindingResource::TextureView(upscaled_texture), + }, + BindGroupEntry { + binding: 1, + resource: BindingResource::Sampler(&sampler), + }, + ], + }); let (_, bind_group) = cached_bind_group.insert((upscaled_texture.id(), bind_group)); bind_group @@ -107,8 +106,8 @@ impl Node for UpscalingNode { depth_stencil_attachment: None, }; - let mut render_pass = render_context - .command_encoder + let mut render_pass = gpu_context + .gpu_command_encoder .begin_render_pass(&pass_descriptor); render_pass.set_pipeline(pipeline); diff --git a/crates/bevy_gltf/src/loader.rs b/crates/bevy_gltf/src/loader.rs index 81d793993ac7c..6e0b4368d2ef2 100644 --- a/crates/bevy_gltf/src/loader.rs +++ b/crates/bevy_gltf/src/loader.rs @@ -25,7 +25,7 @@ use bevy_render::{ prelude::SpatialBundle, primitives::{Aabb, Frustum}, render_resource::{AddressMode, Face, FilterMode, PrimitiveTopology, SamplerDescriptor}, - renderer::RenderDevice, + renderer::GpuDevice, texture::{CompressedImageFormats, Image, ImageSampler, ImageType, TextureError}, view::VisibleEntities, }; @@ -93,8 +93,8 @@ impl AssetLoader for GltfLoader { impl FromWorld for GltfLoader { fn from_world(world: &mut World) -> Self { - let supported_compressed_formats = match world.get_resource::() { - Some(render_device) => CompressedImageFormats::from_features(render_device.features()), + let supported_compressed_formats = match world.get_resource::() { + Some(gpu_device) => CompressedImageFormats::from_features(gpu_device.features()), None => CompressedImageFormats::all(), }; diff --git a/crates/bevy_internal/src/lib.rs b/crates/bevy_internal/src/lib.rs index a1e42d64a12fe..adfaf48b0dbdb 100644 --- a/crates/bevy_internal/src/lib.rs +++ b/crates/bevy_internal/src/lib.rs @@ -136,9 +136,9 @@ pub mod pbr { #[cfg(feature = "bevy_render")] pub mod render { //! Cameras, meshes, textures, shaders, and pipelines. - //! Use [`RenderDevice::features`](crate::render::renderer::RenderDevice::features), - //! [`RenderDevice::limits`](crate::render::renderer::RenderDevice::limits), and the - //! [`RenderAdapterInfo`](crate::render::renderer::RenderAdapterInfo) resource to + //! Use [`GpuDevice::features`](crate::render::renderer::GpuDevice::features), + //! [`GpuDevice::limits`](crate::render::renderer::GpuDevice::limits), and the + //! [`GpuAdapterInfo`](crate::render::renderer::GpuAdapterInfo) resource to //! get runtime information about the actual adapter, backend, features, and limits. pub use bevy_render::*; } diff --git a/crates/bevy_pbr/src/light.rs b/crates/bevy_pbr/src/light.rs index 69188850f535b..b9d437038559d 100644 --- a/crates/bevy_pbr/src/light.rs +++ b/crates/bevy_pbr/src/light.rs @@ -9,7 +9,7 @@ use bevy_render::{ extract_resource::ExtractResource, primitives::{Aabb, CubemapFrusta, Frustum, Plane, Sphere}, render_resource::BufferBindingType, - renderer::RenderDevice, + renderer::GpuDevice, view::{ComputedVisibility, RenderLayers, VisibleEntities}, }; use bevy_transform::{components::GlobalTransform, prelude::Transform}; @@ -863,10 +863,10 @@ pub(crate) fn assign_lights_to_clusters( mut lights: Local>, mut cluster_aabb_spheres: Local>>, mut max_point_lights_warning_emitted: Local, - render_device: Option>, + gpu_device: Option>, ) { - let render_device = match render_device { - Some(render_device) => render_device, + let gpu_device = match gpu_device { + Some(gpu_device) => gpu_device, None => return, }; @@ -903,7 +903,7 @@ pub(crate) fn assign_lights_to_clusters( ); let clustered_forward_buffer_binding_type = - render_device.get_supported_read_only_binding_type(CLUSTERED_FORWARD_STORAGE_BUFFER_COUNT); + gpu_device.get_supported_read_only_binding_type(CLUSTERED_FORWARD_STORAGE_BUFFER_COUNT); let supports_storage_buffers = matches!( clustered_forward_buffer_binding_type, BufferBindingType::Storage { .. } diff --git a/crates/bevy_pbr/src/material.rs b/crates/bevy_pbr/src/material.rs index d10fac03a684e..a744e0ebe62f8 100644 --- a/crates/bevy_pbr/src/material.rs +++ b/crates/bevy_pbr/src/material.rs @@ -34,7 +34,7 @@ use bevy_render::{ PipelineCache, RenderPipelineDescriptor, Shader, ShaderRef, SpecializedMeshPipeline, SpecializedMeshPipelineError, SpecializedMeshPipelines, }, - renderer::RenderDevice, + renderer::GpuDevice, texture::FallbackImage, view::{ExtractedView, Msaa, VisibleEntities}, Extract, RenderApp, RenderStage, @@ -265,11 +265,11 @@ where impl FromWorld for MaterialPipeline { fn from_world(world: &mut World) -> Self { let asset_server = world.resource::(); - let render_device = world.resource::(); + let gpu_device = world.resource::(); MaterialPipeline { mesh_pipeline: world.resource::().clone(), - material_layout: M::bind_group_layout(render_device), + material_layout: M::bind_group_layout(gpu_device), vertex_shader: match M::vertex_shader() { ShaderRef::Default => None, ShaderRef::Handle(handle) => Some(handle), @@ -525,20 +525,14 @@ fn prepare_materials( mut prepare_next_frame: Local>, mut extracted_assets: ResMut>, mut render_materials: ResMut>, - render_device: Res, + gpu_device: Res, images: Res>, fallback_image: Res, pipeline: Res>, ) { let queued_assets = std::mem::take(&mut prepare_next_frame.assets); for (handle, material) in queued_assets.into_iter() { - match prepare_material( - &material, - &render_device, - &images, - &fallback_image, - &pipeline, - ) { + match prepare_material(&material, &gpu_device, &images, &fallback_image, &pipeline) { Ok(prepared_asset) => { render_materials.insert(handle, prepared_asset); } @@ -553,13 +547,7 @@ fn prepare_materials( } for (handle, material) in std::mem::take(&mut extracted_assets.extracted) { - match prepare_material( - &material, - &render_device, - &images, - &fallback_image, - &pipeline, - ) { + match prepare_material(&material, &gpu_device, &images, &fallback_image, &pipeline) { Ok(prepared_asset) => { render_materials.insert(handle, prepared_asset); } @@ -572,14 +560,14 @@ fn prepare_materials( fn prepare_material( material: &M, - render_device: &RenderDevice, + gpu_device: &GpuDevice, images: &RenderAssets, fallback_image: &FallbackImage, pipeline: &MaterialPipeline, ) -> Result, AsBindGroupError> { let prepared = material.as_bind_group( &pipeline.material_layout, - render_device, + gpu_device, images, fallback_image, )?; diff --git a/crates/bevy_pbr/src/render/light.rs b/crates/bevy_pbr/src/render/light.rs index 9cd2bf0bbd83c..01132e495f175 100644 --- a/crates/bevy_pbr/src/render/light.rs +++ b/crates/bevy_pbr/src/render/light.rs @@ -22,7 +22,7 @@ use bevy_render::{ RenderCommandResult, RenderPhase, SetItemPipeline, TrackedRenderPass, }, render_resource::*, - renderer::{RenderContext, RenderDevice, RenderQueue}, + renderer::{GpuContext, GpuDevice, GpuQueue}, texture::*, view::{ ComputedVisibility, ExtractedView, ViewUniform, ViewUniformOffset, ViewUniforms, @@ -140,10 +140,10 @@ impl GpuPointLights { } } - fn write_buffer(&mut self, render_device: &RenderDevice, render_queue: &RenderQueue) { + fn write_buffer(&mut self, gpu_device: &GpuDevice, gpu_queue: &GpuQueue) { match self { - GpuPointLights::Uniform(buffer) => buffer.write_buffer(render_device, render_queue), - GpuPointLights::Storage(buffer) => buffer.write_buffer(render_device, render_queue), + GpuPointLights::Uniform(buffer) => buffer.write_buffer(gpu_device, gpu_queue), + GpuPointLights::Storage(buffer) => buffer.write_buffer(gpu_device, gpu_queue), } } @@ -225,9 +225,9 @@ pub struct ShadowPipeline { // TODO: this pattern for initializing the shaders / pipeline isn't ideal. this should be handled by the asset system impl FromWorld for ShadowPipeline { fn from_world(world: &mut World) -> Self { - let render_device = world.resource::(); + let gpu_device = world.resource::(); - let view_layout = render_device.create_bind_group_layout(&BindGroupLayoutDescriptor { + let view_layout = gpu_device.create_bind_group_layout(&BindGroupLayoutDescriptor { entries: &[ // View BindGroupLayoutEntry { @@ -251,7 +251,7 @@ impl FromWorld for ShadowPipeline { view_layout, mesh_layout: mesh_pipeline.mesh_layout.clone(), skinned_mesh_layout, - point_light_sampler: render_device.create_sampler(&SamplerDescriptor { + point_light_sampler: gpu_device.create_sampler(&SamplerDescriptor { address_mode_u: AddressMode::ClampToEdge, address_mode_v: AddressMode::ClampToEdge, address_mode_w: AddressMode::ClampToEdge, @@ -261,7 +261,7 @@ impl FromWorld for ShadowPipeline { compare: Some(CompareFunction::GreaterEqual), ..Default::default() }), - directional_light_sampler: render_device.create_sampler(&SamplerDescriptor { + directional_light_sampler: gpu_device.create_sampler(&SamplerDescriptor { address_mode_u: AddressMode::ClampToEdge, address_mode_v: AddressMode::ClampToEdge, address_mode_w: AddressMode::ClampToEdge, @@ -671,7 +671,7 @@ impl FromWorld for GlobalLightMeta { fn from_world(world: &mut World) -> Self { Self::new( world - .resource::() + .resource::() .get_supported_read_only_binding_type(CLUSTERED_FORWARD_STORAGE_BUFFER_COUNT), ) } @@ -758,8 +758,8 @@ pub(crate) fn spot_light_projection_matrix(angle: f32) -> Mat4 { pub fn prepare_lights( mut commands: Commands, mut texture_cache: ResMut, - render_device: Res, - render_queue: Res, + gpu_device: Res, + gpu_queue: Res, mut global_light_meta: ResMut, mut light_meta: ResMut, views: Query< @@ -789,7 +789,7 @@ pub fn prepare_lights( let mut directional_lights: Vec<_> = directional_lights.iter().collect::>(); #[cfg(not(feature = "webgl"))] - let max_texture_array_layers = render_device.limits().max_texture_array_layers as usize; + let max_texture_array_layers = gpu_device.limits().max_texture_array_layers as usize; #[cfg(not(feature = "webgl"))] let max_texture_cubes = max_texture_array_layers / 6; #[cfg(feature = "webgl")] @@ -980,12 +980,12 @@ pub fn prepare_lights( global_light_meta.gpu_point_lights.set(gpu_point_lights); global_light_meta .gpu_point_lights - .write_buffer(&render_device, &render_queue); + .write_buffer(&gpu_device, &gpu_queue); // set up light data for each view for (entity, extracted_view, clusters) in &views { let point_light_depth_texture = texture_cache.get( - &render_device, + &gpu_device, TextureDescriptor { size: Extent3d { width: point_light_shadow_map.size as u32, @@ -1001,13 +1001,13 @@ pub fn prepare_lights( }, ); let directional_light_depth_texture = texture_cache.get( - &render_device, + &gpu_device, TextureDescriptor { size: Extent3d { width: (directional_light_shadow_map.size as u32) - .min(render_device.limits().max_texture_dimension_2d), + .min(gpu_device.limits().max_texture_dimension_2d), height: (directional_light_shadow_map.size as u32) - .min(render_device.limits().max_texture_dimension_2d), + .min(gpu_device.limits().max_texture_dimension_2d), depth_or_array_layers: (directional_shadow_maps_count + spot_light_shadow_maps_count) .max(1) as u32, @@ -1260,7 +1260,7 @@ pub fn prepare_lights( light_meta .view_gpu_lights - .write_buffer(&render_device, &render_queue); + .write_buffer(&gpu_device, &gpu_queue); } // this must match CLUSTER_COUNT_SIZE in pbr.wgsl @@ -1469,21 +1469,21 @@ impl ViewClusterBindings { self.n_indices += 1; } - pub fn write_buffers(&mut self, render_device: &RenderDevice, render_queue: &RenderQueue) { + pub fn write_buffers(&mut self, gpu_device: &GpuDevice, gpu_queue: &GpuQueue) { match &mut self.buffers { ViewClusterBuffers::Uniform { cluster_light_index_lists, cluster_offsets_and_counts, } => { - cluster_light_index_lists.write_buffer(render_device, render_queue); - cluster_offsets_and_counts.write_buffer(render_device, render_queue); + cluster_light_index_lists.write_buffer(gpu_device, gpu_queue); + cluster_offsets_and_counts.write_buffer(gpu_device, gpu_queue); } ViewClusterBuffers::Storage { cluster_light_index_lists, cluster_offsets_and_counts, } => { - cluster_light_index_lists.write_buffer(render_device, render_queue); - cluster_offsets_and_counts.write_buffer(render_device, render_queue); + cluster_light_index_lists.write_buffer(gpu_device, gpu_queue); + cluster_offsets_and_counts.write_buffer(gpu_device, gpu_queue); } } } @@ -1535,8 +1535,8 @@ impl ViewClusterBindings { pub fn prepare_clusters( mut commands: Commands, - render_device: Res, - render_queue: Res, + gpu_device: Res, + gpu_queue: Res, mesh_pipeline: Res, global_light_meta: Res, views: Query< @@ -1548,7 +1548,7 @@ pub fn prepare_clusters( With>, >, ) { - let render_device = render_device.into_inner(); + let gpu_device = gpu_device.into_inner(); let supports_storage_buffers = matches!( mesh_pipeline.clustered_forward_buffer_binding_type, BufferBindingType::Storage { .. } @@ -1594,21 +1594,21 @@ pub fn prepare_clusters( } } - view_clusters_bindings.write_buffers(render_device, &render_queue); + view_clusters_bindings.write_buffers(gpu_device, &gpu_queue); commands.get_or_spawn(entity).insert(view_clusters_bindings); } } pub fn queue_shadow_view_bind_group( - render_device: Res, + gpu_device: Res, shadow_pipeline: Res, mut light_meta: ResMut, view_uniforms: Res, ) { if let Some(view_binding) = view_uniforms.uniforms.binding() { light_meta.shadow_view_bind_group = - Some(render_device.create_bind_group(&BindGroupDescriptor { + Some(gpu_device.create_bind_group(&BindGroupDescriptor { entries: &[BindGroupEntry { binding: 0, resource: view_binding, @@ -1755,7 +1755,7 @@ impl Node for ShadowPassNode { fn run( &self, graph: &mut RenderGraphContext, - render_context: &mut RenderContext, + gpu_context: &mut GpuContext, world: &World, ) -> Result<(), NodeRunError> { let view_entity = graph.get_input_entity(Self::IN_VIEW)?; @@ -1783,8 +1783,8 @@ impl Node for ShadowPassNode { }), }; - let render_pass = render_context - .command_encoder + let render_pass = gpu_context + .gpu_command_encoder .begin_render_pass(&pass_descriptor); let mut render_pass = TrackedRenderPass::new(render_pass); diff --git a/crates/bevy_pbr/src/render/mesh.rs b/crates/bevy_pbr/src/render/mesh.rs index 92b65621922ac..4116a3c032fb8 100644 --- a/crates/bevy_pbr/src/render/mesh.rs +++ b/crates/bevy_pbr/src/render/mesh.rs @@ -22,7 +22,7 @@ use bevy_render::{ render_asset::RenderAssets, render_phase::{PhaseItem, RenderCommand, RenderCommandResult, TrackedRenderPass}, render_resource::*, - renderer::{RenderDevice, RenderQueue}, + renderer::{GpuDevice, GpuQueue}, texture::{ BevyDefault, DefaultImageSampler, GpuImage, Image, ImageSampler, TextureFormatPixelInfo, }, @@ -264,15 +264,15 @@ pub struct MeshPipeline { impl FromWorld for MeshPipeline { fn from_world(world: &mut World) -> Self { let mut system_state: SystemState<( - Res, + Res, Res, - Res, + Res, )> = SystemState::new(world); - let (render_device, default_sampler, render_queue) = system_state.get_mut(world); - let clustered_forward_buffer_binding_type = render_device - .get_supported_read_only_binding_type(CLUSTERED_FORWARD_STORAGE_BUFFER_COUNT); + let (gpu_device, default_sampler, gpu_queue) = system_state.get_mut(world); + let clustered_forward_buffer_binding_type = + gpu_device.get_supported_read_only_binding_type(CLUSTERED_FORWARD_STORAGE_BUFFER_COUNT); - let view_layout = render_device.create_bind_group_layout(&BindGroupLayoutDescriptor { + let view_layout = gpu_device.create_bind_group_layout(&BindGroupLayoutDescriptor { entries: &[ // View BindGroupLayoutEntry { @@ -406,28 +406,27 @@ impl FromWorld for MeshPipeline { count: None, }; - let mesh_layout = render_device.create_bind_group_layout(&BindGroupLayoutDescriptor { + let mesh_layout = gpu_device.create_bind_group_layout(&BindGroupLayoutDescriptor { entries: &[mesh_binding], label: Some("mesh_layout"), }); - let skinned_mesh_layout = - render_device.create_bind_group_layout(&BindGroupLayoutDescriptor { - entries: &[ - mesh_binding, - BindGroupLayoutEntry { - binding: 1, - visibility: ShaderStages::VERTEX, - ty: BindingType::Buffer { - ty: BufferBindingType::Uniform, - has_dynamic_offset: true, - min_binding_size: BufferSize::new(JOINT_BUFFER_SIZE as u64), - }, - count: None, + let skinned_mesh_layout = gpu_device.create_bind_group_layout(&BindGroupLayoutDescriptor { + entries: &[ + mesh_binding, + BindGroupLayoutEntry { + binding: 1, + visibility: ShaderStages::VERTEX, + ty: BindingType::Buffer { + ty: BufferBindingType::Uniform, + has_dynamic_offset: true, + min_binding_size: BufferSize::new(JOINT_BUFFER_SIZE as u64), }, - ], - label: Some("skinned_mesh_layout"), - }); + count: None, + }, + ], + label: Some("skinned_mesh_layout"), + }); // A 1x1x1 'all 1.0' texture to use as a dummy texture to use in place of optional StandardMaterial textures let dummy_white_gpu_image = { @@ -437,14 +436,14 @@ impl FromWorld for MeshPipeline { &[255u8; 4], TextureFormat::bevy_default(), ); - let texture = render_device.create_texture(&image.texture_descriptor); + let texture = gpu_device.create_texture(&image.texture_descriptor); let sampler = match image.sampler_descriptor { ImageSampler::Default => (**default_sampler).clone(), - ImageSampler::Descriptor(descriptor) => render_device.create_sampler(&descriptor), + ImageSampler::Descriptor(descriptor) => gpu_device.create_sampler(&descriptor), }; let format_size = image.texture_descriptor.format.pixel_size(); - render_queue.write_texture( + gpu_queue.write_texture( ImageCopyTexture { texture: &texture, mip_level: 0, @@ -713,13 +712,13 @@ pub struct MeshBindGroup { pub fn queue_mesh_bind_group( mut commands: Commands, mesh_pipeline: Res, - render_device: Res, + gpu_device: Res, mesh_uniforms: Res>, skinned_mesh_uniform: Res, ) { if let Some(mesh_binding) = mesh_uniforms.uniforms().binding() { let mut mesh_bind_group = MeshBindGroup { - normal: render_device.create_bind_group(&BindGroupDescriptor { + normal: gpu_device.create_bind_group(&BindGroupDescriptor { entries: &[BindGroupEntry { binding: 0, resource: mesh_binding.clone(), @@ -731,7 +730,7 @@ pub fn queue_mesh_bind_group( }; if let Some(skinned_joints_buffer) = skinned_mesh_uniform.buffer.buffer() { - mesh_bind_group.skinned = Some(render_device.create_bind_group(&BindGroupDescriptor { + mesh_bind_group.skinned = Some(gpu_device.create_bind_group(&BindGroupDescriptor { entries: &[ BindGroupEntry { binding: 0, @@ -774,8 +773,8 @@ impl Default for SkinnedMeshUniform { } pub fn prepare_skinned_meshes( - render_device: Res, - render_queue: Res, + gpu_device: Res, + gpu_queue: Res, mut skinned_mesh_uniform: ResMut, ) { if skinned_mesh_uniform.buffer.is_empty() { @@ -783,10 +782,10 @@ pub fn prepare_skinned_meshes( } let len = skinned_mesh_uniform.buffer.len(); - skinned_mesh_uniform.buffer.reserve(len, &render_device); + skinned_mesh_uniform.buffer.reserve(len, &gpu_device); skinned_mesh_uniform .buffer - .write_buffer(&render_device, &render_queue); + .write_buffer(&gpu_device, &gpu_queue); } #[derive(Component)] @@ -797,7 +796,7 @@ pub struct MeshViewBindGroup { #[allow(clippy::too_many_arguments)] pub fn queue_mesh_view_bind_groups( mut commands: Commands, - render_device: Res, + gpu_device: Res, mesh_pipeline: Res, shadow_pipeline: Res, light_meta: Res, @@ -813,7 +812,7 @@ pub fn queue_mesh_view_bind_groups( globals_buffer.buffer.binding(), ) { for (entity, view_shadow_bindings, view_cluster_bindings) in &views { - let view_bind_group = render_device.create_bind_group(&BindGroupDescriptor { + let view_bind_group = gpu_device.create_bind_group(&BindGroupDescriptor { entries: &[ BindGroupEntry { binding: 0, diff --git a/crates/bevy_render/macros/src/as_bind_group.rs b/crates/bevy_render/macros/src/as_bind_group.rs index bbc3c3850cf0b..3b0ac96234e12 100644 --- a/crates/bevy_render/macros/src/as_bind_group.rs +++ b/crates/bevy_render/macros/src/as_bind_group.rs @@ -61,7 +61,7 @@ pub fn derive_as_bind_group(ast: syn::DeriveInput) -> Result { let mut buffer = #render_path::render_resource::encase::UniformBuffer::new(Vec::new()); let converted: #converted_shader_type = self.as_bind_group_shader_type(images); buffer.write(&converted).unwrap(); - #render_path::render_resource::OwnedBindingResource::Buffer(render_device.create_buffer_with_data( + #render_path::render_resource::OwnedBindingResource::Buffer(gpu_device.create_buffer_with_data( &#render_path::render_resource::BufferInitDescriptor { label: None, usage: #render_path::render_resource::BufferUsages::COPY_DST | #render_path::render_resource::BufferUsages::UNIFORM, @@ -281,7 +281,7 @@ pub fn derive_as_bind_group(ast: syn::DeriveInput) -> Result { binding_impls.push(quote! {{ let mut buffer = #render_path::render_resource::encase::UniformBuffer::new(Vec::new()); buffer.write(&self.#field_name).unwrap(); - #render_path::render_resource::OwnedBindingResource::Buffer(render_device.create_buffer_with_data( + #render_path::render_resource::OwnedBindingResource::Buffer(gpu_device.create_buffer_with_data( &#render_path::render_resource::BufferInitDescriptor { label: None, usage: #render_path::render_resource::BufferUsages::COPY_DST | #render_path::render_resource::BufferUsages::UNIFORM, @@ -324,7 +324,7 @@ pub fn derive_as_bind_group(ast: syn::DeriveInput) -> Result { buffer.write(&#uniform_struct_name { #(#field_name: &self.#field_name,)* }).unwrap(); - #render_path::render_resource::OwnedBindingResource::Buffer(render_device.create_buffer_with_data( + #render_path::render_resource::OwnedBindingResource::Buffer(gpu_device.create_buffer_with_data( &#render_path::render_resource::BufferInitDescriptor { label: None, usage: #render_path::render_resource::BufferUsages::COPY_DST | #render_path::render_resource::BufferUsages::UNIFORM, @@ -368,7 +368,7 @@ pub fn derive_as_bind_group(ast: syn::DeriveInput) -> Result { fn as_bind_group( &self, layout: &#render_path::render_resource::BindGroupLayout, - render_device: &#render_path::renderer::RenderDevice, + gpu_device: &#render_path::renderer::GpuDevice, images: &#render_path::render_asset::RenderAssets<#render_path::texture::Image>, fallback_image: &#render_path::texture::FallbackImage, ) -> Result<#render_path::render_resource::PreparedBindGroup, #render_path::render_resource::AsBindGroupError> { @@ -380,7 +380,7 @@ pub fn derive_as_bind_group(ast: syn::DeriveInput) -> Result { label: None, layout: &layout, }; - render_device.create_bind_group(&descriptor) + gpu_device.create_bind_group(&descriptor) }; Ok(#render_path::render_resource::PreparedBindGroup { @@ -390,8 +390,8 @@ pub fn derive_as_bind_group(ast: syn::DeriveInput) -> Result { }) } - fn bind_group_layout(render_device: &#render_path::renderer::RenderDevice) -> #render_path::render_resource::BindGroupLayout { - render_device.create_bind_group_layout(&#render_path::render_resource::BindGroupLayoutDescriptor { + fn bind_group_layout(gpu_device: &#render_path::renderer::GpuDevice) -> #render_path::render_resource::BindGroupLayout { + gpu_device.create_bind_group_layout(&#render_path::render_resource::BindGroupLayoutDescriptor { entries: &[#(#binding_layouts,)*], label: None, }) diff --git a/crates/bevy_render/src/camera/camera_driver_node.rs b/crates/bevy_render/src/camera/camera_driver_node.rs index f57929f30caeb..969c1ba9aa04d 100644 --- a/crates/bevy_render/src/camera/camera_driver_node.rs +++ b/crates/bevy_render/src/camera/camera_driver_node.rs @@ -1,7 +1,7 @@ use crate::{ camera::{ExtractedCamera, RenderTarget}, render_graph::{Node, NodeRunError, RenderGraphContext, SlotValue}, - renderer::RenderContext, + renderer::GpuContext, view::ExtractedWindows, }; use bevy_ecs::{entity::Entity, prelude::QueryState, world::World}; @@ -27,7 +27,7 @@ impl Node for CameraDriverNode { fn run( &self, graph: &mut RenderGraphContext, - render_context: &mut RenderContext, + gpu_context: &mut GpuContext, world: &World, ) -> Result<(), NodeRunError> { let mut sorted_cameras = self @@ -97,8 +97,8 @@ impl Node for CameraDriverNode { depth_stencil_attachment: None, }; - render_context - .command_encoder + gpu_context + .gpu_command_encoder .begin_render_pass(&pass_descriptor); } diff --git a/crates/bevy_render/src/extract_component.rs b/crates/bevy_render/src/extract_component.rs index 7cae7d8065ed5..e8d95eb0ce1e7 100644 --- a/crates/bevy_render/src/extract_component.rs +++ b/crates/bevy_render/src/extract_component.rs @@ -1,6 +1,6 @@ use crate::{ render_resource::{encase::internal::WriteInto, DynamicUniformBuffer, ShaderType}, - renderer::{RenderDevice, RenderQueue}, + renderer::{GpuDevice, GpuQueue}, view::ComputedVisibility, Extract, RenderApp, RenderStage, }; @@ -120,8 +120,8 @@ impl Default for ComponentUniforms { /// They are transformed into uniforms and stored in the [`ComponentUniforms`] resource. fn prepare_uniform_components( mut commands: Commands, - render_device: Res, - render_queue: Res, + gpu_device: Res, + gpu_queue: Res, mut component_uniforms: ResMut>, components: Query<(Entity, &C)>, ) where @@ -144,7 +144,7 @@ fn prepare_uniform_components( component_uniforms .uniforms - .write_buffer(&render_device, &render_queue); + .write_buffer(&gpu_device, &gpu_queue); } /// This plugin extracts the components into the "render world". diff --git a/crates/bevy_render/src/globals.rs b/crates/bevy_render/src/globals.rs index a0b160dd4b27d..1d73080ce2125 100644 --- a/crates/bevy_render/src/globals.rs +++ b/crates/bevy_render/src/globals.rs @@ -1,7 +1,7 @@ use crate::{ extract_resource::ExtractResource, render_resource::{ShaderType, UniformBuffer}, - renderer::{RenderDevice, RenderQueue}, + renderer::{GpuDevice, GpuQueue}, Extract, RenderApp, RenderStage, }; use bevy_app::{App, Plugin}; @@ -59,8 +59,8 @@ pub struct GlobalsBuffer { } fn prepare_globals_buffer( - render_device: Res, - render_queue: Res, + gpu_device: Res, + gpu_queue: Res, mut globals_buffer: ResMut, time: Res