feature: Bindless sampled image support

Related-To: NEO-10352

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
This commit is contained in:
Mateusz Hoppe
2024-05-06 09:48:21 +00:00
committed by Compute-Runtime-Automation
parent cf55e5bf2f
commit 76af952fcb
13 changed files with 430 additions and 31 deletions

View File

@@ -19,6 +19,15 @@
namespace NEO {
class IndirectHeap;
namespace BindlessImageSlot {
constexpr uint32_t image = 0;
constexpr uint32_t implicitArgs = 1;
constexpr uint32_t sampler = 2;
constexpr uint32_t redescribedImage = 3;
constexpr uint32_t max = 4;
}; // namespace BindlessImageSlot
class BindlessHeapsHelper {
public:
enum BindlesHeapType {
@@ -27,6 +36,7 @@ class BindlessHeapsHelper {
globalDsh,
numHeapTypes
};
BindlessHeapsHelper(Device *rootDevice, bool isMultiOsContextCapable);
MOCKABLE_VIRTUAL ~BindlessHeapsHelper();
@@ -48,7 +58,7 @@ class BindlessHeapsHelper {
int getReusedSshVectorIndex(size_t ssSize) {
int index = 0;
if (ssSize == 3 * surfaceStateSize) {
if (ssSize == NEO::BindlessImageSlot::max * surfaceStateSize) {
index = 1;
} else {
UNRECOVERABLE_IF(ssSize != surfaceStateSize);