misc change
This commit is contained in:
@@ -15,7 +15,7 @@ namespace Juliet
|
|||||||
class NonNullPtr
|
class NonNullPtr
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
NonNullPtr(Type* ptr)
|
inline NonNullPtr(Type* ptr)
|
||||||
: InternalPtr(ptr)
|
: InternalPtr(ptr)
|
||||||
{
|
{
|
||||||
Assert(ptr, "Tried to initialize a NonNullPtr with a null pointer");
|
Assert(ptr, "Tried to initialize a NonNullPtr with a null pointer");
|
||||||
@@ -64,7 +64,7 @@ namespace Juliet
|
|||||||
return *InternalPtr;
|
return *InternalPtr;
|
||||||
}
|
}
|
||||||
|
|
||||||
Type* operator->() const
|
inline Type* operator->() const
|
||||||
{
|
{
|
||||||
Assert(InternalPtr, "NonNullPtr: Internal Pointer is Null");
|
Assert(InternalPtr, "NonNullPtr: Internal Pointer is Null");
|
||||||
return InternalPtr;
|
return InternalPtr;
|
||||||
|
|||||||
@@ -23,9 +23,9 @@ namespace Juliet::D3D12
|
|||||||
{
|
{
|
||||||
switch (type)
|
switch (type)
|
||||||
{
|
{
|
||||||
case D3D12BufferType::Base: return "Base";
|
case D3D12BufferType::Base: return "Base";
|
||||||
case D3D12BufferType::TransferDownload: return "TransferDownload";
|
case D3D12BufferType::TransferDownload: return "TransferDownload";
|
||||||
case D3D12BufferType::TransferUpload: return "TransferUpload";
|
case D3D12BufferType::TransferUpload: return "TransferUpload";
|
||||||
}
|
}
|
||||||
return "Unknown";
|
return "Unknown";
|
||||||
}
|
}
|
||||||
@@ -34,11 +34,11 @@ namespace Juliet::D3D12
|
|||||||
{
|
{
|
||||||
switch (usage)
|
switch (usage)
|
||||||
{
|
{
|
||||||
case BufferUsage::None: return "None";
|
case BufferUsage::None: return "None";
|
||||||
case BufferUsage::ConstantBuffer: return "ConstantBuffer";
|
case BufferUsage::ConstantBuffer: return "ConstantBuffer";
|
||||||
case BufferUsage::StructuredBuffer: return "StructuredBuffer";
|
case BufferUsage::StructuredBuffer: return "StructuredBuffer";
|
||||||
case BufferUsage::IndexBuffer: return "IndexBuffer";
|
case BufferUsage::IndexBuffer: return "IndexBuffer";
|
||||||
case BufferUsage::VertexBuffer: return "VertexBuffer";
|
case BufferUsage::VertexBuffer: return "VertexBuffer";
|
||||||
}
|
}
|
||||||
return "Unknown";
|
return "Unknown";
|
||||||
}
|
}
|
||||||
@@ -107,23 +107,17 @@ namespace Juliet::D3D12
|
|||||||
{
|
{
|
||||||
if (d3d12Driver->GPUUploadHeapSupported)
|
if (d3d12Driver->GPUUploadHeapSupported)
|
||||||
{
|
{
|
||||||
heapProperties.Type = D3D12_HEAP_TYPE_GPU_UPLOAD;
|
heapProperties.Type = D3D12_HEAP_TYPE_GPU_UPLOAD;
|
||||||
heapProperties.CPUPageProperty = D3D12_CPU_PAGE_PROPERTY_UNKNOWN;
|
|
||||||
heapProperties.MemoryPoolPreference = D3D12_MEMORY_POOL_UNKNOWN;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
heapProperties.Type = D3D12_HEAP_TYPE_UPLOAD;
|
heapProperties.Type = D3D12_HEAP_TYPE_UPLOAD;
|
||||||
heapProperties.CPUPageProperty = D3D12_CPU_PAGE_PROPERTY_UNKNOWN;
|
heapFlags = D3D12_HEAP_FLAG_ALLOW_ONLY_BUFFERS;
|
||||||
heapProperties.MemoryPoolPreference = D3D12_MEMORY_POOL_UNKNOWN;
|
|
||||||
initialState = D3D12_RESOURCE_STATE_GENERIC_READ;
|
|
||||||
heapFlags = D3D12_HEAP_FLAG_ALLOW_ONLY_BUFFERS;
|
|
||||||
}
|
|
||||||
// heapFlags = D3D12_HEAP_FLAG_NONE; // Avoid overwriting if set above
|
|
||||||
if (heapProperties.Type == D3D12_HEAP_TYPE_GPU_UPLOAD)
|
|
||||||
{
|
|
||||||
heapFlags = D3D12_HEAP_FLAG_NONE; // Or appropriate flags
|
|
||||||
}
|
}
|
||||||
|
heapProperties.CPUPageProperty = D3D12_CPU_PAGE_PROPERTY_UNKNOWN;
|
||||||
|
heapProperties.MemoryPoolPreference = D3D12_MEMORY_POOL_UNKNOWN;
|
||||||
|
initialState = D3D12_RESOURCE_STATE_GENERIC_READ;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -140,10 +134,17 @@ namespace Juliet::D3D12
|
|||||||
}
|
}
|
||||||
case D3D12BufferType::TransferUpload:
|
case D3D12BufferType::TransferUpload:
|
||||||
{
|
{
|
||||||
heapProperties.Type = D3D12_HEAP_TYPE_UPLOAD;
|
if (d3d12Driver->GPUUploadHeapSupported)
|
||||||
|
{
|
||||||
|
heapProperties.Type = D3D12_HEAP_TYPE_GPU_UPLOAD;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
heapProperties.Type = D3D12_HEAP_TYPE_UPLOAD;
|
||||||
|
heapFlags = D3D12_HEAP_FLAG_ALLOW_ONLY_BUFFERS;
|
||||||
|
}
|
||||||
heapProperties.CPUPageProperty = D3D12_CPU_PAGE_PROPERTY_UNKNOWN;
|
heapProperties.CPUPageProperty = D3D12_CPU_PAGE_PROPERTY_UNKNOWN;
|
||||||
heapProperties.MemoryPoolPreference = D3D12_MEMORY_POOL_UNKNOWN;
|
heapProperties.MemoryPoolPreference = D3D12_MEMORY_POOL_UNKNOWN;
|
||||||
heapFlags = D3D12_HEAP_FLAG_NONE;
|
|
||||||
initialState = D3D12_RESOURCE_STATE_GENERIC_READ;
|
initialState = D3D12_RESOURCE_STATE_GENERIC_READ;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -164,15 +165,17 @@ namespace Juliet::D3D12
|
|||||||
desc.Layout = D3D12_TEXTURE_LAYOUT_ROW_MAJOR;
|
desc.Layout = D3D12_TEXTURE_LAYOUT_ROW_MAJOR;
|
||||||
desc.Flags = D3D12_RESOURCE_FLAG_NONE;
|
desc.Flags = D3D12_RESOURCE_FLAG_NONE;
|
||||||
|
|
||||||
Log(LogLevel::Message, LogCategory::Graphics, "CreateBuffer: Device=%p, Size=%zu, Type=%s Use=%s", (void*)d3d12Driver->D3D12Device, size, D3D12BufferTypeToString(type), BufferUsageToString(usage));
|
Log(LogLevel::Message, LogCategory::Graphics, "CreateBuffer: Device=%p, Size=%zu, Type=%s Use=%s",
|
||||||
|
(void*)d3d12Driver->D3D12Device, size, D3D12BufferTypeToString(type), BufferUsageToString(usage));
|
||||||
ID3D12Resource* handle = nullptr;
|
ID3D12Resource* handle = nullptr;
|
||||||
HRESULT result = d3d12Driver->D3D12Device->CreateCommittedResource(&heapProperties, heapFlags,
|
HRESULT result = d3d12Driver->D3D12Device->CreateCommittedResource(&heapProperties, heapFlags, &desc,
|
||||||
&desc, initialState, nullptr,
|
initialState, nullptr, IID_ID3D12Resource,
|
||||||
IID_ID3D12Resource, reinterpret_cast<void**>(&handle));
|
reinterpret_cast<void**>(&handle));
|
||||||
if (FAILED(result))
|
if (FAILED(result))
|
||||||
{
|
{
|
||||||
Log(LogLevel::Error, LogCategory::Graphics, "Could not create buffer! HRESULT=0x%08X", (uint32)result);
|
Log(LogLevel::Error, LogCategory::Graphics, "Could not create buffer! HRESULT=0x%08X", (uint32)result);
|
||||||
Log(LogLevel::Error, LogCategory::Graphics, "Failed Desc: Width=%llu Layout=%d HeapType=%d", (unsigned long long)desc.Width, (int)desc.Layout, (int)heapProperties.Type);
|
Log(LogLevel::Error, LogCategory::Graphics, "Failed Desc: Width=%llu Layout=%d HeapType=%d",
|
||||||
|
(unsigned long long)desc.Width, (int)desc.Layout, (int)heapProperties.Type);
|
||||||
|
|
||||||
HRESULT removeReason = d3d12Driver->D3D12Device->GetDeviceRemovedReason();
|
HRESULT removeReason = d3d12Driver->D3D12Device->GetDeviceRemovedReason();
|
||||||
if (FAILED(removeReason))
|
if (FAILED(removeReason))
|
||||||
@@ -305,8 +308,8 @@ namespace Juliet::D3D12
|
|||||||
// We assume Upload buffers are always in state GENERIC_READ or similar suitable for CopySrc.
|
// We assume Upload buffers are always in state GENERIC_READ or similar suitable for CopySrc.
|
||||||
// D3D12 Upload heaps start in GENERIC_READ and cannot transition.
|
// D3D12 Upload heaps start in GENERIC_READ and cannot transition.
|
||||||
|
|
||||||
d3d12CmdList->GraphicsCommandList.CommandList->CopyBufferRegion(d3d12Dst->Handle,
|
d3d12CmdList->GraphicsCommandList.CommandList->CopyBufferRegion(d3d12Dst->Handle, dstOffset, d3d12Src->Handle,
|
||||||
dstOffset, d3d12Src->Handle, srcOffset, size);
|
srcOffset, size);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TransitionBufferToReadable(NonNullPtr<CommandList> commandList, NonNullPtr<GraphicsBuffer> buffer)
|
void TransitionBufferToReadable(NonNullPtr<CommandList> commandList, NonNullPtr<GraphicsBuffer> buffer)
|
||||||
|
|||||||
@@ -98,7 +98,7 @@ namespace Juliet::D3D12
|
|||||||
extern void SetBlendConstants(NonNullPtr<CommandList> commandList, FColor blendConstants);
|
extern void SetBlendConstants(NonNullPtr<CommandList> commandList, FColor blendConstants);
|
||||||
extern void SetStencilReference(NonNullPtr<CommandList> commandList, uint8 reference);
|
extern void SetStencilReference(NonNullPtr<CommandList> commandList, uint8 reference);
|
||||||
extern void SetIndexBuffer(NonNullPtr<CommandList> commandList, NonNullPtr<GraphicsBuffer> buffer,
|
extern void SetIndexBuffer(NonNullPtr<CommandList> commandList, NonNullPtr<GraphicsBuffer> buffer,
|
||||||
IndexFormat format, index_t offset);
|
IndexFormat format, size_t indexCount, index_t offset);
|
||||||
extern void SetPushConstants(NonNullPtr<CommandList> commandList, ShaderStage stage, uint32 rootParameterIndex,
|
extern void SetPushConstants(NonNullPtr<CommandList> commandList, ShaderStage stage, uint32 rootParameterIndex,
|
||||||
uint32 numConstants, const void* constants);
|
uint32 numConstants, const void* constants);
|
||||||
|
|
||||||
|
|||||||
@@ -680,14 +680,12 @@ namespace Juliet::D3D12
|
|||||||
Internal::TextureTransitionToDefaultUsage(d3d12CommandList, d3d12Texture, D3D12_RESOURCE_STATE_COPY_DEST);
|
Internal::TextureTransitionToDefaultUsage(d3d12CommandList, d3d12Texture, D3D12_RESOURCE_STATE_COPY_DEST);
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetDescriptorIndex wrapper needed to adapt signature from GPUDriver* to GraphicsDevice*
|
|
||||||
uint32 GetDescriptorIndex(NonNullPtr<GraphicsDevice> device, NonNullPtr<GraphicsBuffer> buffer)
|
uint32 GetDescriptorIndex(NonNullPtr<GraphicsDevice> device, NonNullPtr<GraphicsBuffer> buffer)
|
||||||
{
|
{
|
||||||
auto* driver = static_cast<D3D12Driver*>(device->Driver);
|
auto* driver = static_cast<D3D12Driver*>(device->Driver);
|
||||||
return D3D12::GetDescriptorIndex(driver, buffer);
|
return D3D12::GetDescriptorIndex(driver, buffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetDescriptorIndexTexture provides custom logic to get SRV handle index
|
|
||||||
uint32 GetDescriptorIndexTexture(NonNullPtr<GraphicsDevice> /*device*/, NonNullPtr<Texture> texture)
|
uint32 GetDescriptorIndexTexture(NonNullPtr<GraphicsDevice> /*device*/, NonNullPtr<Texture> texture)
|
||||||
{
|
{
|
||||||
auto* textureContainer = reinterpret_cast<D3D12TextureContainer*>(texture.Get());
|
auto* textureContainer = reinterpret_cast<D3D12TextureContainer*>(texture.Get());
|
||||||
@@ -1019,42 +1017,39 @@ namespace Juliet::D3D12
|
|||||||
device->AcquireSwapChainTexture = AcquireSwapChainTexture;
|
device->AcquireSwapChainTexture = AcquireSwapChainTexture;
|
||||||
device->WaitAndAcquireSwapChainTexture = WaitAndAcquireSwapChainTexture;
|
device->WaitAndAcquireSwapChainTexture = WaitAndAcquireSwapChainTexture;
|
||||||
device->GetSwapChainTextureFormat = GetSwapChainTextureFormat;
|
device->GetSwapChainTextureFormat = GetSwapChainTextureFormat;
|
||||||
device->AcquireCommandList = D3D12::AcquireCommandList;
|
device->AcquireCommandList = AcquireCommandList;
|
||||||
device->SubmitCommandLists = D3D12::SubmitCommandLists;
|
device->SubmitCommandLists = SubmitCommandLists;
|
||||||
|
device->BeginRenderPass = BeginRenderPass;
|
||||||
device->BeginRenderPass = D3D12::BeginRenderPass;
|
device->EndRenderPass = EndRenderPass;
|
||||||
device->EndRenderPass = D3D12::EndRenderPass;
|
device->SetViewPort = SetViewPort;
|
||||||
device->SetViewPort = D3D12::SetViewPort;
|
device->SetScissorRect = SetScissorRect;
|
||||||
device->SetScissorRect = D3D12::SetScissorRect;
|
device->SetBlendConstants = SetBlendConstants;
|
||||||
device->SetBlendConstants = D3D12::SetBlendConstants;
|
device->SetStencilReference = SetStencilReference;
|
||||||
device->SetStencilReference = D3D12::SetStencilReference;
|
device->BindGraphicsPipeline = BindGraphicsPipeline;
|
||||||
device->BindGraphicsPipeline = D3D12::BindGraphicsPipeline;
|
device->DrawPrimitives = DrawPrimitives;
|
||||||
device->DrawPrimitives = D3D12::DrawPrimitives;
|
device->DrawIndexedPrimitives = DrawIndexedPrimitives;
|
||||||
device->DrawIndexedPrimitives = D3D12::DrawIndexedPrimitives;
|
device->SetIndexBuffer = SetIndexBuffer;
|
||||||
device->SetIndexBuffer = D3D12::SetIndexBuffer;
|
device->WaitUntilGPUIsIdle = WaitUntilGPUIsIdle;
|
||||||
device->WaitUntilGPUIsIdle = D3D12::WaitUntilGPUIsIdle;
|
device->SetPushConstants = SetPushConstants;
|
||||||
|
device->QueryFence = QueryFence;
|
||||||
device->SetPushConstants = D3D12::SetPushConstants;
|
device->ReleaseFence = ReleaseFence;
|
||||||
device->QueryFence = D3D12::QueryFence;
|
device->CreateShader = CreateShader;
|
||||||
device->ReleaseFence = D3D12::ReleaseFence;
|
device->DestroyShader = DestroyShader;
|
||||||
device->CreateShader = D3D12::CreateShader;
|
device->CreateGraphicsPipeline = CreateGraphicsPipeline;
|
||||||
device->DestroyShader = D3D12::DestroyShader;
|
device->DestroyGraphicsPipeline = DestroyGraphicsPipeline;
|
||||||
device->CreateGraphicsPipeline = D3D12::CreateGraphicsPipeline;
|
device->CreateGraphicsBuffer = CreateGraphicsBuffer;
|
||||||
device->DestroyGraphicsPipeline = DestroyGraphicsPipeline;
|
device->DestroyGraphicsBuffer = DestroyGraphicsBuffer;
|
||||||
device->CreateGraphicsBuffer = D3D12::CreateGraphicsBuffer;
|
device->CreateGraphicsTransferBuffer = CreateGraphicsTransferBuffer;
|
||||||
device->DestroyGraphicsBuffer = D3D12::DestroyGraphicsBuffer;
|
device->DestroyGraphicsTransferBuffer = DestroyGraphicsTransferBuffer;
|
||||||
device->CreateGraphicsTransferBuffer = D3D12::CreateGraphicsTransferBuffer;
|
device->MapGraphicsTransferBuffer = MapBuffer;
|
||||||
device->DestroyGraphicsTransferBuffer = D3D12::DestroyGraphicsTransferBuffer;
|
device->UnmapGraphicsTransferBuffer = UnmapBuffer;
|
||||||
device->MapGraphicsTransferBuffer = D3D12::MapBuffer;
|
device->CopyBuffer = CopyBuffer;
|
||||||
device->UnmapGraphicsTransferBuffer = D3D12::UnmapBuffer;
|
device->CopyBufferToTexture = CopyBufferToTexture;
|
||||||
device->CopyBuffer = CopyBuffer;
|
device->TransitionBufferToReadable = TransitionBufferToReadable;
|
||||||
device->CopyBufferToTexture = CopyBufferToTexture;
|
device->GetDescriptorIndex = GetDescriptorIndex;
|
||||||
device->TransitionBufferToReadable = D3D12::TransitionBufferToReadable;
|
device->GetDescriptorIndexTexture = GetDescriptorIndexTexture;
|
||||||
|
device->CreateTexture = CreateTexture;
|
||||||
device->GetDescriptorIndex = GetDescriptorIndex;
|
device->DestroyTexture = DestroyTexture;
|
||||||
device->GetDescriptorIndexTexture = GetDescriptorIndexTexture;
|
|
||||||
device->CreateTexture = D3D12::CreateTexture;
|
|
||||||
device->DestroyTexture = D3D12::DestroyTexture;
|
|
||||||
|
|
||||||
#if ALLOW_SHADER_HOT_RELOAD
|
#if ALLOW_SHADER_HOT_RELOAD
|
||||||
device->UpdateGraphicsPipelineShaders = UpdateGraphicsPipelineShaders;
|
device->UpdateGraphicsPipelineShaders = UpdateGraphicsPipelineShaders;
|
||||||
|
|||||||
@@ -143,7 +143,7 @@ void JulietApplication::Init()
|
|||||||
BufferCreateInfo bufferCI = {};
|
BufferCreateInfo bufferCI = {};
|
||||||
bufferCI.Size = 1024;
|
bufferCI.Size = 1024;
|
||||||
bufferCI.Usage = BufferUsage::StructuredBuffer; // SRV for ResourceDescriptorHeap access
|
bufferCI.Usage = BufferUsage::StructuredBuffer; // SRV for ResourceDescriptorHeap access
|
||||||
ConstantBuffer = CreateGraphicsBuffer(GraphicsDevice, bufferCI);
|
StructuredBuffer = CreateGraphicsBuffer(GraphicsDevice, bufferCI);
|
||||||
|
|
||||||
TransferBufferCreateInfo transferCI = {};
|
TransferBufferCreateInfo transferCI = {};
|
||||||
transferCI.Size = 1024;
|
transferCI.Size = 1024;
|
||||||
@@ -151,7 +151,7 @@ void JulietApplication::Init()
|
|||||||
TransferBuffer = CreateGraphicsTransferBuffer(GraphicsDevice, transferCI);
|
TransferBuffer = CreateGraphicsTransferBuffer(GraphicsDevice, transferCI);
|
||||||
|
|
||||||
// Upload Static Data for Test
|
// Upload Static Data for Test
|
||||||
if (TransferBuffer && ConstantBuffer)
|
if (TransferBuffer && StructuredBuffer)
|
||||||
{
|
{
|
||||||
void* data = MapGraphicsTransferBuffer(GraphicsDevice, TransferBuffer);
|
void* data = MapGraphicsTransferBuffer(GraphicsDevice, TransferBuffer);
|
||||||
if (data)
|
if (data)
|
||||||
@@ -165,8 +165,8 @@ void JulietApplication::Init()
|
|||||||
UnmapGraphicsTransferBuffer(GraphicsDevice, TransferBuffer);
|
UnmapGraphicsTransferBuffer(GraphicsDevice, TransferBuffer);
|
||||||
|
|
||||||
CommandList* initCmd = AcquireCommandList(GraphicsDevice);
|
CommandList* initCmd = AcquireCommandList(GraphicsDevice);
|
||||||
CopyBuffer(initCmd, ConstantBuffer, TransferBuffer, 256);
|
CopyBuffer(initCmd, StructuredBuffer, TransferBuffer, 256);
|
||||||
TransitionBufferToReadable(initCmd, ConstantBuffer);
|
TransitionBufferToReadable(initCmd, StructuredBuffer);
|
||||||
SubmitCommandLists(initCmd);
|
SubmitCommandLists(initCmd);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -220,9 +220,9 @@ void JulietApplication::Shutdown()
|
|||||||
{
|
{
|
||||||
DestroyGraphicsPipeline(GraphicsDevice, GraphicsPipeline);
|
DestroyGraphicsPipeline(GraphicsDevice, GraphicsPipeline);
|
||||||
}
|
}
|
||||||
if (ConstantBuffer)
|
if (StructuredBuffer)
|
||||||
{
|
{
|
||||||
DestroyGraphicsBuffer(GraphicsDevice, ConstantBuffer);
|
DestroyGraphicsBuffer(GraphicsDevice, StructuredBuffer);
|
||||||
}
|
}
|
||||||
if (TransferBuffer)
|
if (TransferBuffer)
|
||||||
{
|
{
|
||||||
@@ -366,7 +366,7 @@ void JulietApplication::OnPreRender(CommandList* cmd)
|
|||||||
index_t index = 0;
|
index_t index = 0;
|
||||||
|
|
||||||
// Buffer uploads
|
// Buffer uploads
|
||||||
if (ConstantBuffer && TransferBuffer)
|
if (StructuredBuffer && TransferBuffer)
|
||||||
{
|
{
|
||||||
void* ptr = MapGraphicsTransferBuffer(GraphicsDevice, TransferBuffer);
|
void* ptr = MapGraphicsTransferBuffer(GraphicsDevice, TransferBuffer);
|
||||||
if (ptr)
|
if (ptr)
|
||||||
@@ -405,8 +405,8 @@ void JulietApplication::OnPreRender(CommandList* cmd)
|
|||||||
UnmapGraphicsTransferBuffer(GraphicsDevice, TransferBuffer);
|
UnmapGraphicsTransferBuffer(GraphicsDevice, TransferBuffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
CopyBuffer(cmd, ConstantBuffer, TransferBuffer, CubeMesh->IndexByteOffset + (CubeMesh->IndexCount * sizeof(uint16)));
|
CopyBuffer(cmd, StructuredBuffer, TransferBuffer, CubeMesh->IndexByteOffset + (CubeMesh->IndexCount * sizeof(uint16)));
|
||||||
TransitionBufferToReadable(cmd, ConstantBuffer);
|
TransitionBufferToReadable(cmd, StructuredBuffer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -414,7 +414,7 @@ void JulietApplication::OnRender(RenderPass* pass, CommandList* cmd)
|
|||||||
{
|
{
|
||||||
BindGraphicsPipeline(pass, GraphicsPipeline);
|
BindGraphicsPipeline(pass, GraphicsPipeline);
|
||||||
|
|
||||||
uint32 descriptorIndex = GetDescriptorIndex(GraphicsDevice, ConstantBuffer);
|
uint32 descriptorIndex = GetDescriptorIndex(GraphicsDevice, StructuredBuffer);
|
||||||
|
|
||||||
struct PushData
|
struct PushData
|
||||||
{
|
{
|
||||||
@@ -426,7 +426,7 @@ void JulietApplication::OnRender(RenderPass* pass, CommandList* cmd)
|
|||||||
|
|
||||||
SetPushConstants(cmd, ShaderStage::Vertex, 0, sizeof(pushData) / 4, &pushData);
|
SetPushConstants(cmd, ShaderStage::Vertex, 0, sizeof(pushData) / 4, &pushData);
|
||||||
|
|
||||||
SetIndexBuffer(cmd, ConstantBuffer, IndexFormat::UInt16, CubeMesh->IndexCount, CubeMesh->IndexByteOffset);
|
SetIndexBuffer(cmd, StructuredBuffer, IndexFormat::UInt16, CubeMesh->IndexCount, CubeMesh->IndexByteOffset);
|
||||||
// DrawIndexedPrimitives(pass, static_cast<uint32>(CubeMesh->IndexCount), 1, 0, 0, 0);
|
// DrawIndexedPrimitives(pass, static_cast<uint32>(CubeMesh->IndexCount), 1, 0, 0, 0);
|
||||||
|
|
||||||
DrawIndexedPrimitives(pass, static_cast<uint32>(CubeMesh->IndexCount), 1,
|
DrawIndexedPrimitives(pass, static_cast<uint32>(CubeMesh->IndexCount), 1,
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ class JulietApplication : public Juliet::IApplication
|
|||||||
Juliet::GraphicsDevice* GraphicsDevice = {};
|
Juliet::GraphicsDevice* GraphicsDevice = {};
|
||||||
Juliet::HotReloadCode GameCode = {};
|
Juliet::HotReloadCode GameCode = {};
|
||||||
Juliet::GraphicsPipeline* GraphicsPipeline = {};
|
Juliet::GraphicsPipeline* GraphicsPipeline = {};
|
||||||
Juliet::GraphicsBuffer* ConstantBuffer = {};
|
Juliet::GraphicsBuffer* StructuredBuffer = {};
|
||||||
Juliet::GraphicsTransferBuffer* TransferBuffer = {};
|
Juliet::GraphicsTransferBuffer* TransferBuffer = {};
|
||||||
Juliet::Texture* DepthBuffer = {};
|
Juliet::Texture* DepthBuffer = {};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user