IPixShaderLane::GetMemorySpaces method

Gets a collection of the memory spaces this lane can address.

Syntax

HRESULT GetMemorySpaces(
    REFIID riid,
    void ** memorySpaces);

Parameters

riid [in]

The interface IID of the object to be returned. Expected: IPixCollection<IPixShaderMemorySpace>.

memorySpaces [out]

The pointer to the returned interface

Returns

S_OK on success, otherwise an error code.

Remarks

Reports every kind of memory reachable from the lane, from per-lane scratch through thread-group shared memory up to the global spaces that IPixShaderDebuggingSession::GetMemorySpaces also reports. Memory spaces are enumerated per lane rather than per wave because reading one needs to know which lane is asking: IPixShaderMemorySpace::Read names an address but no lane, so the lane is bound into the space when it is created here. A wave does not identify a lane, and so could not hand back a readable per-lane space.

Unlike the rest of this interface this keeps answering while the wave is moving, because which memory a lane can address does not change as the wave executes. Reading a space's contents still requires a stopped wave; see IPixShaderMemorySpace::Read.

See also