Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.
Sign up[ll] D3D12 backend MVP #1330
Conversation
msiglreith
reviewed
Jun 22, 2017
|
Nice to see some work on the backend |
| @@ -97,17 +97,71 @@ impl Factory { | |||
| } | |||
| Ok(native::ShaderLib { shaders: shader_map }) | |||
| } | |||
|
|
|||
| pub fn create_descriptor_heap_impl(device: &mut ComPtr<winapi::ID3D12Device>, | |||
This comment has been minimized.
This comment has been minimized.
| }, | ||
| core::HeapType { | ||
| id: 1, | ||
| properties: memory::CPU_VISIBLE | memory::CPU_CACHED, |
This comment has been minimized.
This comment has been minimized.
msiglreith
Jun 22, 2017
Member
Does D3D12 have non-coherent memory? Vulkan requires to explicitly flush non-coherent memory via vkFlush/InvalidateMappedMemoryRanges. I don't recall if there is a similar restriction on d3d12 (map/unmap?).
This comment has been minimized.
This comment has been minimized.
kvark
force-pushed the
kvark:bind2
branch
from
e206edc
to
80848b7
Jul 11, 2017
kvark
changed the title
[WIP] [ll] D3D12 backend MVP
[ll] D3D12 backend MVP
Jul 12, 2017
msiglreith
approved these changes
Jul 12, 2017
|
Great! Edit: I can't say something about the metall changes but @JohnColanduoni seems to have already approved it on gitter. |
| }; | ||
|
|
||
| if state_src == state_dst { | ||
| warn!("Image pipeline barrier requested with no effect: {:?}", barrier); |
This comment has been minimized.
This comment has been minimized.
msiglreith
Jul 12, 2017
Member
This doesn't necessarily indicate that something redundant has been done but we should indeed skip them.
| fn clear_color(&mut self, rtv: &native::RenderTargetView, value: command::ClearColor) { | ||
| let clear_color = match value { | ||
| command::ClearColor::Float(c) => c, | ||
| command::ClearColor::Int(c) => [c[0] as FLOAT, c[1] as FLOAT, c[2] as FLOAT, c[3] as FLOAT], // TODO: error? |
This comment has been minimized.
This comment has been minimized.
msiglreith
Jul 12, 2017
Member
(Casts are probably wrong here, requiring to keep the same bits but that's something we rather need to test in the future..)
| render_area: target::Rect, | ||
| clear_values: &[command::ClearValue] | ||
| ) -> Self { | ||
| let color_views = framebuffer.color.iter().map(|view| view.handle).collect::<Vec<_>>(); |
This comment has been minimized.
This comment has been minimized.
| clear_values: &[command::ClearValue] | ||
| ) -> Self { | ||
| let color_views = framebuffer.color.iter().map(|view| view.handle).collect::<Vec<_>>(); | ||
| assert!(framebuffer.depth_stencil.len() <= 1); |
This comment has been minimized.
This comment has been minimized.
| pub struct DescriptorHeap { | ||
| pub inner: ComPtr<winapi::ID3D12DescriptorHeap>, | ||
| //TODO: hide members? |
This comment has been minimized.
This comment has been minimized.
kvark
force-pushed the
kvark:bind2
branch
from
40447ef
to
aac9e83
Jul 12, 2017
kvark
added some commits
Jun 8, 2017
kvark
force-pushed the
kvark:bind2
branch
from
a6df31c
to
dd915fc
Jul 12, 2017
This comment has been minimized.
This comment has been minimized.
|
Looks green enough :) Merging, at last! |

kvark commentedJun 22, 2017
•
edited
Fixes #1353
Also brings some improvements to core and metal backends.