SWDEV-366992 - adding handle type for vk interop

Change-Id: I79ee0d89b948c21b96709e9e607abe7901621a97
This commit is contained in:
pghafari
2023-04-10 19:42:47 -04:00
zatwierdzone przez Payam Ghafari
rodzic d843c02843
commit 78de2ae692
5 zmienionych plików z 32 dodań i 11 usunięć
+22 -9
Wyświetl plik
@@ -25,28 +25,41 @@ THE SOFTWARE. */
namespace amd
{
class VkObject : public InteropObject
{
protected:
amd::Os::FileDesc handleVk_;
public:
enum HandleType {
ExternalMemoryFd = 1,
ExternalMemoryWin32 = 2,
ExternalMemoryWin32KMT = 3,
};
//! GLObject constructor initializes member variables
VkObject(
amd::Os::FileDesc handle
amd::Os::FileDesc handle,
VkObject::HandleType handle_type
) // Initialization of member variables
{
handleVk_ = handle;
handle_type_ = handle_type;
}
virtual ~VkObject() {}
VkObject* asVkObject() { return this; }
amd::Os::FileDesc getVkSharedHandle() const { return handleVk_; }
HandleType getHandleType() const { return handle_type_; }
protected:
amd::Os::FileDesc handleVk_;
VkObject::HandleType handle_type_;
};
class BufferVk : public Buffer, public VkObject
{
protected:
@@ -63,15 +76,15 @@ namespace amd
BufferVk(
Context& amdContext,
size_t uiSizeInBytes,
amd::Os::FileDesc handle)
: // Call base classes constructors
amd::Os::FileDesc handle,
VkObject::HandleType handle_type) : // Call base classes constructors
Buffer(
amdContext,
0,
uiSizeInBytes
),
VkObject(
handle
handle, handle_type
)
{
setInteropObj(this);
@@ -99,15 +112,15 @@ namespace amd
ImageVk(
Context& amdContext,
size_t uiSizeInBytes,
amd::Os::FileDesc handle)
: // Call base classes constructors
amd::Os::FileDesc handle,
VkObject::HandleType handle_type): // Call base classes constructors
Buffer(
amdContext,
0,
uiSizeInBytes
),
VkObject(
handle
handle, handle_type
)
{
setInteropObj(this);