Bring Metal backend up to speed
This commit is contained in:
parent
1f98e19819
commit
f3f6a219f6
2 changed files with 4 additions and 5 deletions
|
@ -44,7 +44,7 @@ public:
|
||||||
GFXPipeline* create_graphics_pipeline(const GFXGraphicsPipelineCreateInfo& info) override;
|
GFXPipeline* create_graphics_pipeline(const GFXGraphicsPipelineCreateInfo& info) override;
|
||||||
GFXPipeline* create_compute_pipeline(const GFXComputePipelineCreateInfo& info) override;
|
GFXPipeline* create_compute_pipeline(const GFXComputePipelineCreateInfo& info) override;
|
||||||
|
|
||||||
GFXCommandBuffer* acquire_command_buffer() override;
|
GFXCommandBuffer* acquire_command_buffer(bool for_presentation_use = false) override;
|
||||||
|
|
||||||
void submit(GFXCommandBuffer* command_buffer, const int window = -1) override;
|
void submit(GFXCommandBuffer* command_buffer, const int window = -1) override;
|
||||||
|
|
||||||
|
|
|
@ -220,9 +220,8 @@ void GFXMetal::copy_buffer(GFXBuffer* buffer, void* data, const GFXSize offset,
|
||||||
|
|
||||||
const unsigned char * src = reinterpret_cast<const unsigned char*>(data);
|
const unsigned char * src = reinterpret_cast<const unsigned char*>(data);
|
||||||
unsigned char * dest = reinterpret_cast<unsigned char *>(metalBuffer->get(currentFrameIndex).contents);
|
unsigned char * dest = reinterpret_cast<unsigned char *>(metalBuffer->get(currentFrameIndex).contents);
|
||||||
memcpy(dest + offset, src, size);
|
if(dest != nullptr)
|
||||||
|
memcpy(dest + offset, src, size);
|
||||||
//[metalBuffer->handle didModifyRange:NSMakeRange(offset, size)];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void* GFXMetal::get_buffer_contents(GFXBuffer* buffer) {
|
void* GFXMetal::get_buffer_contents(GFXBuffer* buffer) {
|
||||||
|
@ -699,7 +698,7 @@ GFXPipeline* GFXMetal::create_compute_pipeline(const GFXComputePipelineCreateInf
|
||||||
return pipeline;
|
return pipeline;
|
||||||
}
|
}
|
||||||
|
|
||||||
GFXCommandBuffer* GFXMetal::acquire_command_buffer() {
|
GFXCommandBuffer* GFXMetal::acquire_command_buffer(bool for_presentation_use) {
|
||||||
GFXCommandBuffer* cmdbuf = nullptr;
|
GFXCommandBuffer* cmdbuf = nullptr;
|
||||||
while(cmdbuf == nullptr) {
|
while(cmdbuf == nullptr) {
|
||||||
for(const auto [i, buffer_status] : utility::enumerate(free_command_buffers)) {
|
for(const auto [i, buffer_status] : utility::enumerate(free_command_buffers)) {
|
||||||
|
|
Reference in a new issue