File: heap_base_address_model.h

package info (click to toggle)
intel-compute-runtime 25.35.35096.9-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 79,324 kB
  • sloc: cpp: 926,243; lisp: 3,433; sh: 715; makefile: 162; python: 21
file content (42 lines) | stat: -rw-r--r-- 1,553 bytes parent folder | download | duplicates (2)
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
/*
 * Copyright (C) 2023 Intel Corporation
 *
 * SPDX-License-Identifier: MIT
 *
 */

#pragma once

#include <cstdint>

namespace NEO {

enum class HeapAddressModel : uint32_t {
    /*
     * Private heaps - command list can use any addressing.
     * Heaps are allocated and owned by each command list.
     * Command lists will require to reload SBA command before execution.
     */
    privateHeaps = 0,
    /*
     * Global stateless - command list can use only stateless addressing.
     * Surface state heap is allocated per context for driver's allocations only (debug and scratch)
     * Command lists do not require SBA command reload. SBA is dispatched only once for heap addresses.
     */
    globalStateless = 1,
    /*
     * Global bindless - command list can use stateless or bindless addressing.
     * Surface and dynamic heaps are allocated in global, 4GB allocator for all allocations and samplers used.
     * Command lists do not require SBA command reload. SBA is dispatched only once for heap addresses.
     */
    globalBindless = 2,
    /*
     * Global bindful - command list can use any addressing.
     * Surface and dynamic heaps are allocated in global, 4GB allocator for all allocations and samplers used.
     * Binding table base address is programed by special heap manager that provides and reuses space for bti
     * Command lists might require dynamic binding table base address command reload when binding table heap manager requires to reload base address.
     */
    globalBindful = 3
};

} // namespace NEO