...........kkkkkkk yeah..
This commit is contained in:
parent
c20a4fa1a3
commit
00c67d5bdf
9
.cargo/config.toml.old
Normal file
9
.cargo/config.toml.old
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
[target.x86_64-unknown-linux-gnu]
|
||||||
|
linker = "clang"
|
||||||
|
rustflags = [
|
||||||
|
"-Clink-arg=-fuse-ld=mold",
|
||||||
|
|
||||||
|
# Nightly
|
||||||
|
"-Zshare-generics=y",
|
||||||
|
"-Zthreads=0",
|
||||||
|
]
|
||||||
35
Cargo.toml
35
Cargo.toml
|
|
@ -3,6 +3,9 @@ name = "vidya"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
|
|
||||||
|
[patch.crates-io]
|
||||||
|
bevy = {path = "../bevy"}
|
||||||
|
|
||||||
[workspace]
|
[workspace]
|
||||||
resolver = "2"
|
resolver = "2"
|
||||||
|
|
||||||
|
|
@ -68,22 +71,22 @@ raw-window-handle = "0.6"
|
||||||
egui = "0.32"
|
egui = "0.32"
|
||||||
egui_winit_platform = "0.27"
|
egui_winit_platform = "0.27"
|
||||||
|
|
||||||
bevy = { version = "0.19.0-dev", git = "https://github.com/bevyengine/bevy" }
|
bevy = { version = "0.20.0-dev" }
|
||||||
bevy_app = { version = "0.19.0-dev", git = "https://github.com/bevyengine/bevy" }
|
bevy_app = { version = "0.20.0-dev" }
|
||||||
bevy_asset = { version = "0.19.0-dev", git = "https://github.com/bevyengine/bevy" }
|
bevy_asset = { version = "0.20.0-dev" }
|
||||||
bevy_derive = { version = "0.19.0-dev", git = "https://github.com/bevyengine/bevy" }
|
bevy_derive = { version = "0.20.0-dev" }
|
||||||
bevy_ecs = { version = "0.19.0-dev", git = "https://github.com/bevyengine/bevy", features = ["multi_threaded", "trace"]}
|
bevy_ecs = { version = "0.20.0-dev" }
|
||||||
bevy_hierarchy = { version = "0.19.0-dev", git = "https://github.com/bevyengine/bevy" }
|
bevy_hierarchy = { version = "0.20.0-dev" }
|
||||||
bevy_log = { version = "0.19.0-dev", git = "https://github.com/bevyengine/bevy" }
|
bevy_log = { version = "0.20.0-dev" }
|
||||||
bevy_math = { version = "0.19.0-dev", git = "https://github.com/bevyengine/bevy" }
|
bevy_math = { version = "0.20.0-dev" }
|
||||||
bevy_platform = { version = "0.19.0-dev", git = "https://github.com/bevyengine/bevy" }
|
bevy_platform = { version = "0.20.0-dev" }
|
||||||
bevy_reflect = { version = "0.19.0-dev", git = "https://github.com/bevyengine/bevy" }
|
bevy_reflect = { version = "0.20.0-dev" }
|
||||||
bevy_tasks = { version = "0.19.0-dev", git = "https://github.com/bevyengine/bevy" }
|
bevy_tasks = { version = "0.20.0-dev" }
|
||||||
bevy_time = { version = "0.19.0-dev", git = "https://github.com/bevyengine/bevy" }
|
bevy_time = { version = "0.20.0-dev" }
|
||||||
bevy_transform = { version = "0.19.0-dev", git = "https://github.com/bevyengine/bevy" }
|
bevy_transform = { version = "0.20.0-dev" }
|
||||||
bevy_utils = { version = "0.19.0-dev", git = "https://github.com/bevyengine/bevy" }
|
bevy_utils = { version = "0.20.0-dev" }
|
||||||
bevy_window = { version = "0.19.0-dev", git = "https://github.com/bevyengine/bevy" }
|
bevy_window = { version = "0.20.0-dev" }
|
||||||
bevy_winit = { version = "0.19.0-dev", git = "https://github.com/bevyengine/bevy" }
|
bevy_winit = { version = "0.20.0-dev" }
|
||||||
|
|
||||||
[[example]]
|
[[example]]
|
||||||
name = "bevy_integration"
|
name = "bevy_integration"
|
||||||
|
|
|
||||||
|
|
@ -462,6 +462,7 @@ impl Command for UpdateBuffer {
|
||||||
fn apply(self, _recorder: &mut CommandRecorder) {}
|
fn apply(self, _recorder: &mut CommandRecorder) {}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Debug, Clone)]
|
||||||
pub struct RenderAttachment {
|
pub struct RenderAttachment {
|
||||||
pub texture: Texture,
|
pub texture: Texture,
|
||||||
pub region: vk::ImageSubresourceRange,
|
pub region: vk::ImageSubresourceRange,
|
||||||
|
|
@ -470,6 +471,52 @@ pub struct RenderAttachment {
|
||||||
pub store_op: vk::AttachmentStoreOp,
|
pub store_op: vk::AttachmentStoreOp,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl RenderAttachment {
|
||||||
|
pub fn side_effect(&self, mut map: SideEffectMap, load: bool) {
|
||||||
|
for attachment in &self.color_attachments {
|
||||||
|
// The dependencies declared here need to be barrier'd before and
|
||||||
|
// after the render pass: the spec says pipelineBarrier inside of a
|
||||||
|
// render pass instance referencing framebuffer-local stages must
|
||||||
|
// contain only framebuffer-local stages.
|
||||||
|
|
||||||
|
map.with(
|
||||||
|
vk::PipelineStageFlags2::COLOR_ATTACHMENT_OUTPUT,
|
||||||
|
if attachment.load_op == vk::AttachmentLoadOp::LOAD {
|
||||||
|
vk::AccessFlags2::COLOR_ATTACHMENT_READ
|
||||||
|
} else {
|
||||||
|
vk::AccessFlags2::empty()
|
||||||
|
},
|
||||||
|
Some(attachment.layout),
|
||||||
|
)
|
||||||
|
.insert_range(attachment.texture.id(), attachment.region);
|
||||||
|
}
|
||||||
|
if let Some(depth) = &self.depth_attachment {
|
||||||
|
map.with(
|
||||||
|
vk::PipelineStageFlags2::EARLY_FRAGMENT_TESTS,
|
||||||
|
if depth.load_op == vk::AttachmentLoadOp::LOAD {
|
||||||
|
vk::AccessFlags2::DEPTH_STENCIL_ATTACHMENT_READ
|
||||||
|
} else {
|
||||||
|
vk::AccessFlags2::empty()
|
||||||
|
},
|
||||||
|
Some(depth.layout),
|
||||||
|
)
|
||||||
|
.insert_range(depth.texture.id(), depth.region);
|
||||||
|
}
|
||||||
|
if let Some(stencil) = &self.stencil_attachment {
|
||||||
|
map.with(
|
||||||
|
vk::PipelineStageFlags2::EARLY_FRAGMENT_TESTS,
|
||||||
|
if stencil.load_op == vk::AttachmentLoadOp::LOAD {
|
||||||
|
vk::AccessFlags2::DEPTH_STENCIL_ATTACHMENT_READ
|
||||||
|
} else {
|
||||||
|
vk::AccessFlags2::empty()
|
||||||
|
},
|
||||||
|
Some(stencil.layout),
|
||||||
|
)
|
||||||
|
.insert_range(stencil.texture.id(), stencil.region);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
pub struct BeginRendering {
|
pub struct BeginRendering {
|
||||||
pub color_attachments: Vec<RenderAttachment>,
|
pub color_attachments: Vec<RenderAttachment>,
|
||||||
pub depth_attachment: Option<RenderAttachment>,
|
pub depth_attachment: Option<RenderAttachment>,
|
||||||
|
|
@ -478,6 +525,22 @@ pub struct BeginRendering {
|
||||||
pub layers: u32,
|
pub layers: u32,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub struct EndRendering {
|
||||||
|
pub color_attachments: Vec<RenderAttachment>,
|
||||||
|
pub depth_attachment: Option<RenderAttachment>,
|
||||||
|
pub stencil_attachment: Option<RenderAttachment>,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl BeginRendering {
|
||||||
|
fn end_rendering(&self) -> EndRendering {
|
||||||
|
EndRendering {
|
||||||
|
color_attachments: self.color_attachments.clone(),
|
||||||
|
depth_attachment: self.depth_attachment.clone(),
|
||||||
|
stencil_attachment: self.stencil_attachment.clone(),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
impl Command for BeginRendering {
|
impl Command for BeginRendering {
|
||||||
fn side_effects(&self, mut map: SideEffectMap) {
|
fn side_effects(&self, mut map: SideEffectMap) {
|
||||||
for attachment in &self.color_attachments {
|
for attachment in &self.color_attachments {
|
||||||
|
|
@ -526,8 +589,6 @@ impl Command for BeginRendering {
|
||||||
fn apply(self, _recorder: &mut CommandRecorder) {}
|
fn apply(self, _recorder: &mut CommandRecorder) {}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub struct EndRendering;
|
|
||||||
|
|
||||||
impl Command for EndRendering {
|
impl Command for EndRendering {
|
||||||
fn side_effects(&self, _map: SideEffectMap) {
|
fn side_effects(&self, _map: SideEffectMap) {
|
||||||
// TODO: need the beginrendering struct to declare the store-op dependencies.
|
// TODO: need the beginrendering struct to declare the store-op dependencies.
|
||||||
|
|
|
||||||
|
|
@ -12,9 +12,7 @@ use crate::{
|
||||||
images::ImageDesc,
|
images::ImageDesc,
|
||||||
render_graph::{
|
render_graph::{
|
||||||
commands::{Command, InsideRenderPass, OutsideRenderPass, RenderAttachment},
|
commands::{Command, InsideRenderPass, OutsideRenderPass, RenderAttachment},
|
||||||
resources::{
|
resources::{ResourceId, Subresource, SubresourceScope, SubresourceScopeInner},
|
||||||
ResourceId, Subresource, SubresourceScope, SubresourceScopeInner, TextureRegion,
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -416,6 +416,7 @@ impl Buffer {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Debug, Clone)]
|
||||||
pub struct Texture(pub ResourceId);
|
pub struct Texture(pub ResourceId);
|
||||||
|
|
||||||
pub struct BufferSlice {
|
pub struct BufferSlice {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue