SWDEV-366992 - adding handle type for vk interop

Change-Id: I79ee0d89b948c21b96709e9e607abe7901621a97
이 커밋은 다음에 포함됨:
pghafari 작성하고 Payam Ghafari가 2023-04-18 16:59:25 -04:00를 커밋함
1 부모 d843c02843
커밋 78de2ae692
5 파일이 변경됨
+32 -11

검색과 일치하는 파일 없음

+22 -9
파일 보기
@@ -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);