GTPin
Public Types | Public Member Functions | Static Public Member Functions
gtpin::GtMemoryAddrModel Class Reference

Class that represents Address Model of the memory surface access. More...

#include <gt_gpu_defs.h>

Public Types

enum  ADDR_TYPE {
  BTS_IDX_MIN = 0,
  BTS_IDX_MAX = 0xef,
  SS = 0xfb,
  BSS = 0xfc,
  SLM = 0xfe,
  STATELESS = 0xff,
  STATELESS_NC = 0xfd,
  ADDR_TYPE_MAX = 0xff
}
 Types of memory surfaces / memory address models. More...

Public Member Functions

constexpr GtMemoryAddrModel ()
 Construct invalid address model.
constexpr GtMemoryAddrModel (uint32_t bti, bool isA64=true)
 Construct address model for the address type, specified by Binding Table Index, or a valid ADDR_TYPE value.
bool constexpr IsValid () const
 Return true for a valid address model.
bool constexpr IsBts () const
 Return true for Stateful BTS model.
bool constexpr IsSurfaceState () const
 Return true for Surface State (SS) model.
bool constexpr IsBss () const
 Return true for Bindless Surface State (BSS) model.
bool constexpr IsSlm () const
 Return true for SLM address model.
bool constexpr IsStateless () const
 Return true for a Stateless model.
bool constexpr IsA64 () const
 Return true for 64-bit Stateless address model.
bool constexpr IsA32 () const
 Return true for 32-bit Stateless address model.
uint32_t constexpr PtrSize () const
 Return address size in bytes.
uint32_t constexpr Bti () const
 Return Binding Table Index.
std::string ToString () const
 Return string representation of the address model.

Static Public Member Functions

static GtMemoryAddrModel Bts (uint32_t bti)
 Make BTS model.
static constexpr GtMemoryAddrModel SurfaceState ()
 Make SS model.
static constexpr GtMemoryAddrModel Bss ()
 Make BSS model.
static constexpr GtMemoryAddrModel Slm ()
 Make SLM model.
static constexpr GtMemoryAddrModel A64 ()
 Make A64 Coherent model.
static constexpr GtMemoryAddrModel A32 ()
 Make A32 Coherent model.
static constexpr GtMemoryAddrModel A64Nc ()
 Make A64 Non-Coherent model.
static constexpr GtMemoryAddrModel A32Nc ()
 Make A32 Non-Coherent model.

Detailed Description

Class that represents Address Model of the memory surface access.


Member Enumeration Documentation

Types of memory surfaces / memory address models.

See also:
gfxspecs Index/57222 and Index/44800
Note:
ADDR_TYPE does not distinguish between A32 and A64 stateless models
Enumerator:
BTS_IDX_MIN 

Min. Binding Table State Index.

BTS_IDX_MAX 

Max. Binding Table State Index.

SS 

Surface State address.

BSS 

Bindless Surface State address.

SLM 

Shared Local Memory address.

STATELESS 

Stateless Coherent Memory address.

STATELESS_NC 

Stateless Non-Coherent Memory address.

ADDR_TYPE_MAX 

Max. valid value of this type.


Constructor & Destructor Documentation

constexpr gtpin::GtMemoryAddrModel::GtMemoryAddrModel ( uint32_t  bti,
bool  isA64 = true 
) [inline]

Construct address model for the address type, specified by Binding Table Index, or a valid ADDR_TYPE value.

Parameters:
[in]btiBinding Table Index, or any valid ADDR_TYPE value
[in]isA64True for a stateless A64 address model, false otherwise. This parameter is ignored if 'bti' unambiguously specifies a non-stateless model

Member Function Documentation

GtMemoryAddrModel gtpin::GtMemoryAddrModel::Bts ( uint32_t  bti) [inline, static]

Make BTS model.

Precondition:
bti <= BTS_IDX_MAX
 All Data Structures Functions Variables Typedefs Enumerations Enumerator


  Copyright (C) 2013-2025 Intel Corporation
SPDX-License-Identifier: MIT