Skip to content

Commit 36c4516

Browse files
committed
Added vulkan override
1 parent 56a5ea9 commit 36c4516

File tree

7 files changed

+24
-13
lines changed

7 files changed

+24
-13
lines changed

Calc/inc/device.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,9 @@ namespace Calc
7777
virtual Buffer* CreateBuffer(std::size_t size, std::uint32_t flags, void* initdata) = 0;
7878
virtual void DeleteBuffer(Buffer* buffer) = 0;
7979

80+
// Unity hack for accessing internal BVH
81+
virtual void* GetNativeHandle(Buffer const* buffer) const = 0;
82+
8083
// Data movement
8184
// Calls are blocking if passed nullptr for an event, otherwise use Event to sync
8285
virtual void ReadBuffer(Buffer const* buffer, std::uint32_t queue, std::size_t offset, std::size_t size, void* dst, Event** e) const = 0;

Calc/src/device_clw.cpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -295,6 +295,14 @@ namespace Calc
295295
delete buffer;
296296
}
297297

298+
void* DeviceClw::GetNativeHandle(Buffer const* buffer) const
299+
{
300+
BufferClw const* bufferClw = static_cast<BufferClw const*>(buffer);
301+
if (!bufferClw)
302+
return nullptr;
303+
return bufferClw->GetData();
304+
}
305+
298306
void DeviceClw::ReadBuffer(Buffer const* buffer, std::uint32_t queue, std::size_t offset, std::size_t size, void* dst, Event** e) const
299307
{
300308
auto buffer_clw = static_cast<BufferClw const*>(buffer);
@@ -587,14 +595,6 @@ namespace Calc
587595
}
588596
}
589597

590-
cl_mem DeviceClw::GetNativeHandle(Buffer const* buffer)
591-
{
592-
BufferClw const* bufferClw = static_cast<BufferClw const*>(buffer);
593-
if (!bufferClw)
594-
return nullptr;
595-
return bufferClw->GetData();
596-
}
597-
598598
class PrimitivesClw : public Primitives
599599
{
600600
public:

Calc/src/device_clw.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,9 @@ namespace Calc
4848
Buffer* CreateBuffer(std::size_t size, std::uint32_t flags, void* initdata) override;
4949
void DeleteBuffer(Buffer* buffer) override;
5050

51+
// Unity hack for accessing internal BVH
52+
void* GetNativeHandle(Buffer const* buffer) const override;
53+
5154
// Data movement
5255
void ReadBuffer(Buffer const* buffer, std::uint32_t queue, std::size_t offset, std::size_t size, void* dst, Event** e) const override;
5356
void WriteBuffer(Buffer const* buffer, std::uint32_t queue, std::size_t offset, std::size_t size, void* src, Event** e) override;
@@ -89,9 +92,6 @@ namespace Calc
8992

9093
Platform GetPlatform() const override { return Platform::kOpenCL; }
9194

92-
// Unity hack for accessing internal BVH
93-
cl_mem GetNativeHandle(Buffer const* buffer);
94-
9595
protected:
9696
EventClw* CreateEventClw() const;
9797
void ReleaseEventClw(EventClw* e) const;

Calc/src/device_vkw.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,11 @@ namespace Calc
173173
}
174174
}
175175

176+
void* DeviceVulkanw::GetNativeHandle(Buffer const* buffer) const
177+
{
178+
return nullptr;
179+
}
180+
176181
// Data movement
177182
void DeviceVulkanw::ReadBuffer( Buffer const* buffer, std::uint32_t queue, std::size_t offset, std::size_t size, void* dst, Event** e ) const
178183
{

Calc/src/device_vkw.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,9 @@ namespace Calc
5454
Buffer* CreateBuffer( std::size_t size, std::uint32_t flags, void* initdata ) override;
5555
void DeleteBuffer( Buffer* buffer ) override;
5656

57+
// Unity hack for accessing internal BVH
58+
void* GetNativeHandle(Buffer const* buffer) const override;
59+
5760
// Data movement
5861
void ReadBuffer( Buffer const* buffer, std::uint32_t queue, std::size_t offset, std::size_t size, void* dst, Event** e ) const override;
5962
void WriteBuffer( Buffer const* buffer, std::uint32_t queue, std::size_t offset, std::size_t size, void* src, Event** e ) override;

RadeonRays/src/device/embree_intersection_device.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -496,7 +496,7 @@ namespace RadeonRays
496496
Throw("Not implemented for embree device.");
497497
}
498498

499-
Buffer const* EmbreeIntersectionDevice::GetBvh() const
499+
void* EmbreeIntersectionDevice::GetBvh() const
500500
{
501501
return nullptr;
502502
}

RadeonRays/src/device/embree_intersection_device.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ namespace RadeonRays
5353
void QueryOcclusion(Buffer const* rays, int numrays, Buffer* hitresults, Event const* waitevent, Event** event) const override;
5454
void QueryIntersection(Buffer const* rays, Buffer const* numrays, int maxrays, Buffer* hitinfos, Event const* waitevent, Event** event) const override;
5555
void QueryOcclusion(Buffer const* rays, Buffer const* numrays, int maxrays, Buffer* hitresults, Event const* waitevent, Event** event) const override;
56-
Buffer const* GetBvh() const override;
56+
void* GetBvh() const override;
5757

5858
protected:
5959
RTCScene GetEmbreeMesh(const Mesh*);

0 commit comments

Comments
 (0)