-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathshaders.cpp
More file actions
45 lines (41 loc) · 1.7 KB
/
Copy pathshaders.cpp
File metadata and controls
45 lines (41 loc) · 1.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
/* Copyright (c) 2026 Advanced Micro Devices, Inc. All rights reserved. */
#include "shaders/shaders.hpp"
namespace mlss
{
//=====================================================================================================================
std::unique_ptr<Binaries::Blob> make_binary_blob(const ShaderDescriptor& shader)
{
std::string name(shader.m_kernelName);
if (name.empty())
{
name = getKernelName(std::span<const std::uint8_t>(
reinterpret_cast<const std::uint8_t*>(shader.m_binary.data()),
shader.m_binary.size()))
.value_or(std::string{});
}
return std::make_unique<Binaries::Blob>(Binaries::Blob{
shader.m_binary.data(),
shader.m_binary.size(),
static_cast<std::uint32_t>(BinaryTypeFlags::ELF),
0,
name});
}
//=====================================================================================================================
std::unique_ptr<Binaries::Blob> make_binary_blob(const ShaderDescriptorByte& shader)
{
std::string name(shader.m_kernelName);
if (name.empty())
{
name = getKernelName(std::span<const std::uint8_t>(
reinterpret_cast<const std::uint8_t*>(shader.m_binary.data()),
shader.m_binary.size()))
.value_or(std::string{});
}
return std::make_unique<Binaries::Blob>(Binaries::Blob{
shader.m_binary.data(),
shader.m_binary.size(),
static_cast<std::uint32_t>(BinaryTypeFlags::ELF),
0,
name});
}
} // namespace mlss