Documentation

Unity Engine


User Manual

Script Reference

Unity Engine


RequestIntoNativeSlice

Retrieves data asynchronously from a GPU Graphics Buffer resource.
Read time 13 minutesLast updated 9 days ago

Definition

RequestIntoNativeSlice<T>(NativeSlice<T>, ComputeBuffer, Action<AsyncGPUReadbackRequest>)

Retrieves data asynchronously from a GPU Graphics Buffer resource.
public static AsyncGPUReadbackRequest RequestIntoNativeSlice<T>(ref NativeSlice<T> output, ComputeBuffer src, Action<AsyncGPUReadbackRequest> callback = null) where T : struct

Parameters

Reference to the NativeSlice to write the data into. The underlying memory cannot be Disposed until the request is complete.

The GraphicsBuffer to read the data from.

An optional delegate Action to call after Unity completes the request. When Unity calls the delegate, it passes the completed request as a parameter to the Action.

Returns

Type

Description

AsyncGPUReadbackRequestReturns an AsyncGPUReadbackRequest that you can use to determine when the data is available. Otherwise, returns a request with an error.

Remarks

If the return value is a request with an error, calling AsyncGPUReadbackRequest.hasError returns true.
For texture data, the extents are checked against the size of the source texture. If graphics QualitySettings are set low enough to generate reduced size textures, then the reduced size must be requested. Use QualitySettings.masterTextureLimit to adjust the width and height (and x,y if required), by bit shifting right.
For texture data, use the SystemInfo.IsFormatSupported method with the GraphicsFormatUsage.ReadPixels flag to query if the format is supported.

RequestIntoNativeSlice<T>(NativeSlice<T>, ComputeBuffer, int, int, Action<AsyncGPUReadbackRequest>)

Retrieves data asynchronously from a GPU Graphics Buffer resource.
public static AsyncGPUReadbackRequest RequestIntoNativeSlice<T>(ref NativeSlice<T> output, ComputeBuffer src, int size, int offset, Action<AsyncGPUReadbackRequest> callback = null) where T : struct

Parameters

Reference to the NativeSlice to write the data into. The underlying memory cannot be Disposed until the request is complete.

The GraphicsBuffer to read the data from.

size

The size, in bytes, of the data to retrieve from the GraphicsBuffer.

offset

Offset in bytes in the GraphicsBuffer.

An optional delegate Action to call after Unity completes the request. When Unity calls the delegate, it passes the completed request as a parameter to the Action.

Returns

Type

Description

AsyncGPUReadbackRequestReturns an AsyncGPUReadbackRequest that you can use to determine when the data is available. Otherwise, returns a request with an error.

Remarks

If the return value is a request with an error, calling AsyncGPUReadbackRequest.hasError returns true.
For texture data, the extents are checked against the size of the source texture. If graphics QualitySettings are set low enough to generate reduced size textures, then the reduced size must be requested. Use QualitySettings.masterTextureLimit to adjust the width and height (and x,y if required), by bit shifting right.
For texture data, use the SystemInfo.IsFormatSupported method with the GraphicsFormatUsage.ReadPixels flag to query if the format is supported.

RequestIntoNativeSlice<T>(NativeSlice<T>, GraphicsBuffer, Action<AsyncGPUReadbackRequest>)

Retrieves data asynchronously from a GPU Graphics Buffer resource.
public static AsyncGPUReadbackRequest RequestIntoNativeSlice<T>(ref NativeSlice<T> output, GraphicsBuffer src, Action<AsyncGPUReadbackRequest> callback = null) where T : struct

Parameters

Reference to the NativeSlice to write the data into. The underlying memory cannot be Disposed until the request is complete.

The GraphicsBuffer to read the data from.

An optional delegate Action to call after Unity completes the request. When Unity calls the delegate, it passes the completed request as a parameter to the Action.

Returns

Type

Description

AsyncGPUReadbackRequestReturns an AsyncGPUReadbackRequest that you can use to determine when the data is available. Otherwise, returns a request with an error.

Remarks

If the return value is a request with an error, calling AsyncGPUReadbackRequest.hasError returns true.
For texture data, the extents are checked against the size of the source texture. If graphics QualitySettings are set low enough to generate reduced size textures, then the reduced size must be requested. Use QualitySettings.masterTextureLimit to adjust the width and height (and x,y if required), by bit shifting right.
For texture data, use the SystemInfo.IsFormatSupported method with the GraphicsFormatUsage.ReadPixels flag to query if the format is supported.

RequestIntoNativeSlice<T>(NativeSlice<T>, GraphicsBuffer, int, int, Action<AsyncGPUReadbackRequest>)

Retrieves data asynchronously from a GPU Graphics Buffer resource.
public static AsyncGPUReadbackRequest RequestIntoNativeSlice<T>(ref NativeSlice<T> output, GraphicsBuffer src, int size, int offset, Action<AsyncGPUReadbackRequest> callback = null) where T : struct

Parameters

Reference to the NativeSlice to write the data into. The underlying memory cannot be Disposed until the request is complete.

The GraphicsBuffer to read the data from.

size

The size, in bytes, of the data to retrieve from the GraphicsBuffer.

offset

Offset in bytes in the GraphicsBuffer.

An optional delegate Action to call after Unity completes the request. When Unity calls the delegate, it passes the completed request as a parameter to the Action.

Returns

Type

Description

AsyncGPUReadbackRequestReturns an AsyncGPUReadbackRequest that you can use to determine when the data is available. Otherwise, returns a request with an error.

Remarks

If the return value is a request with an error, calling AsyncGPUReadbackRequest.hasError returns true.
For texture data, the extents are checked against the size of the source texture. If graphics QualitySettings are set low enough to generate reduced size textures, then the reduced size must be requested. Use QualitySettings.masterTextureLimit to adjust the width and height (and x,y if required), by bit shifting right.
For texture data, use the SystemInfo.IsFormatSupported method with the GraphicsFormatUsage.ReadPixels flag to query if the format is supported.

RequestIntoNativeSlice<T>(NativeSlice<T>, Texture, int, Action<AsyncGPUReadbackRequest>)

Retrieves data asynchronously from a GPU Texture resource.
public static AsyncGPUReadbackRequest RequestIntoNativeSlice<T>(ref NativeSlice<T> output, Texture src, int mipIndex = 0, Action<AsyncGPUReadbackRequest> callback = null) where T : struct

Parameters

Reference to the NativeSlice to write the data into. The underlying memory cannot be Disposed until the request is complete.

The Texture resource to read the data from.

mipIndex

The index of the mipmap to fetch.

An optional delegate Action to call after Unity completes the request. When Unity calls the delegate, it passes the completed request as a parameter to the Action.

Returns

Type

Description

AsyncGPUReadbackRequestReturns an AsyncGPUReadbackRequest that you can use to determine when the data is available. Otherwise, returns a request with an error.

Remarks

If the return value is a request with an error, calling AsyncGPUReadbackRequest.hasError returns true.
For texture data, the extents are checked against the size of the source texture. If graphics QualitySettings are set low enough to generate reduced size textures, then the reduced size must be requested. Use QualitySettings.masterTextureLimit to adjust the width and height (and x,y if required), by bit shifting right.
For texture data, use the SystemInfo.IsFormatSupported method with the GraphicsFormatUsage.ReadPixels flag to query if the format is supported.
When requesting into multiple slices in the same frame, ensure that each slice comes from a different memory allocation. Using multiple slices from the same allocation within a single frame is not supported.

RequestIntoNativeSlice<T>(NativeSlice<T>, Texture, int, TextureFormat, Action<AsyncGPUReadbackRequest>)

Retrieves data asynchronously from a GPU Texture resource.
public static AsyncGPUReadbackRequest RequestIntoNativeSlice<T>(ref NativeSlice<T> output, Texture src, int mipIndex, TextureFormat dstFormat, Action<AsyncGPUReadbackRequest> callback = null) where T : struct

Parameters

Reference to the NativeSlice to write the data into. The underlying memory cannot be Disposed until the request is complete.

The Texture resource to read the data from.

mipIndex

The index of the mipmap to fetch.

dstFormat

The target TextureFormat of the data. Conversion happens automatically if this format is different from the format stored on the GPU.

An optional delegate Action to call after Unity completes the request. When Unity calls the delegate, it passes the completed request as a parameter to the Action.

Returns

Type

Description

AsyncGPUReadbackRequestReturns an AsyncGPUReadbackRequest that you can use to determine when the data is available. Otherwise, returns a request with an error.

Remarks

If the return value is a request with an error, calling AsyncGPUReadbackRequest.hasError returns true.
For texture data, the extents are checked against the size of the source texture. If graphics QualitySettings are set low enough to generate reduced size textures, then the reduced size must be requested. Use QualitySettings.masterTextureLimit to adjust the width and height (and x,y if required), by bit shifting right.
For texture data, use the SystemInfo.IsFormatSupported method with the GraphicsFormatUsage.ReadPixels flag to query if the format is supported.
When requesting into multiple slices in the same frame, ensure that each slice comes from a different memory allocation. Using multiple slices from the same allocation within a single frame is not supported.

RequestIntoNativeSlice<T>(NativeSlice<T>, Texture, int, GraphicsFormat, Action<AsyncGPUReadbackRequest>)

Retrieves data asynchronously from a GPU Texture resource.
public static AsyncGPUReadbackRequest RequestIntoNativeSlice<T>(ref NativeSlice<T> output, Texture src, int mipIndex, GraphicsFormat dstFormat, Action<AsyncGPUReadbackRequest> callback = null) where T : struct

Parameters

Reference to the NativeSlice to write the data into. The underlying memory cannot be Disposed until the request is complete.

The Texture resource to read the data from.

mipIndex

The index of the mipmap to fetch.

The target TextureFormat of the data. Conversion happens automatically if this format is different from the format stored on the GPU.

An optional delegate Action to call after Unity completes the request. When Unity calls the delegate, it passes the completed request as a parameter to the Action.

Returns

Type

Description

AsyncGPUReadbackRequestReturns an AsyncGPUReadbackRequest that you can use to determine when the data is available. Otherwise, returns a request with an error.

Remarks

If the return value is a request with an error, calling AsyncGPUReadbackRequest.hasError returns true.
For texture data, the extents are checked against the size of the source texture. If graphics QualitySettings are set low enough to generate reduced size textures, then the reduced size must be requested. Use QualitySettings.masterTextureLimit to adjust the width and height (and x,y if required), by bit shifting right.
For texture data, use the SystemInfo.IsFormatSupported method with the GraphicsFormatUsage.ReadPixels flag to query if the format is supported.
When requesting into multiple slices in the same frame, ensure that each slice comes from a different memory allocation. Using multiple slices from the same allocation within a single frame is not supported.

RequestIntoNativeSlice<T>(NativeSlice<T>, Texture, int, int, int, int, int, int, int, TextureFormat, Action<AsyncGPUReadbackRequest>)

Retrieves data asynchronously from a GPU Texture resource.
public static AsyncGPUReadbackRequest RequestIntoNativeSlice<T>(ref NativeSlice<T> output, Texture src, int mipIndex, int x, int width, int y, int height, int z, int depth, TextureFormat dstFormat, Action<AsyncGPUReadbackRequest> callback = null) where T : struct

Parameters

Reference to the NativeSlice to write the data into. The underlying memory cannot be Disposed until the request is complete.

The Texture resource to read the data from.

mipIndex

The index of the mipmap to fetch.

The starting x-coordinate, in pixels, of the Texture data to fetch.

width

The width, in pixels, of the Texture data to fetch.

The starting y-coordinate, in pixels, of the Texture data to fetch.

height

The height, in pixels, of the Texture data to fetch.

The starting z-coordinate, in pixels, of the Texture3D to fetch. For TextureCube, Texture2DArray, and TextureCubeArray, this is the index of the start layer.

depth

The depth, in pixels of the Texture3D to fetch. For TextureCube, Texture2DArray, and TextureCubeArray, this is the number of layers to retrieve.

dstFormat

The target TextureFormat of the data. Conversion happens automatically if this format is different from the format stored on the GPU.

An optional delegate Action to call after Unity completes the request. When Unity calls the delegate, it passes the completed request as a parameter to the Action.

Returns

Type

Description

AsyncGPUReadbackRequestReturns an AsyncGPUReadbackRequest that you can use to determine when the data is available. Otherwise, returns a request with an error.

Remarks

If the return value is a request with an error, calling AsyncGPUReadbackRequest.hasError returns true.
For texture data, the extents are checked against the size of the source texture. If graphics QualitySettings are set low enough to generate reduced size textures, then the reduced size must be requested. Use QualitySettings.masterTextureLimit to adjust the width and height (and x,y if required), by bit shifting right.
For texture data, use the SystemInfo.IsFormatSupported method with the GraphicsFormatUsage.ReadPixels flag to query if the format is supported.
When requesting into multiple slices in the same frame, ensure that each slice comes from a different memory allocation. Using multiple slices from the same allocation within a single frame is not supported.

RequestIntoNativeSlice<T>(NativeSlice<T>, Texture, int, int, int, int, int, int, int, GraphicsFormat, Action<AsyncGPUReadbackRequest>)

Retrieves data asynchronously from a GPU Texture resource.
public static AsyncGPUReadbackRequest RequestIntoNativeSlice<T>(ref NativeSlice<T> output, Texture src, int mipIndex, int x, int width, int y, int height, int z, int depth, GraphicsFormat dstFormat, Action<AsyncGPUReadbackRequest> callback = null) where T : struct

Parameters

Reference to the NativeSlice to write the data into. The underlying memory cannot be Disposed until the request is complete.

The Texture resource to read the data from.

mipIndex

The index of the mipmap to fetch.

The starting x-coordinate, in pixels, of the Texture data to fetch.

width

The width, in pixels, of the Texture data to fetch.

The starting y-coordinate, in pixels, of the Texture data to fetch.

height

The height, in pixels, of the Texture data to fetch.

The starting z-coordinate, in pixels, of the Texture3D to fetch. For TextureCube, Texture2DArray, and TextureCubeArray, this is the index of the start layer.

depth

The depth, in pixels of the Texture3D to fetch. For TextureCube, Texture2DArray, and TextureCubeArray, this is the number of layers to retrieve.

The target TextureFormat of the data. Conversion happens automatically if this format is different from the format stored on the GPU.

An optional delegate Action to call after Unity completes the request. When Unity calls the delegate, it passes the completed request as a parameter to the Action.

Returns

Type

Description

AsyncGPUReadbackRequestReturns an AsyncGPUReadbackRequest that you can use to determine when the data is available. Otherwise, returns a request with an error.

Remarks

If the return value is a request with an error, calling AsyncGPUReadbackRequest.hasError returns true.
For texture data, the extents are checked against the size of the source texture. If graphics QualitySettings are set low enough to generate reduced size textures, then the reduced size must be requested. Use QualitySettings.masterTextureLimit to adjust the width and height (and x,y if required), by bit shifting right.
For texture data, use the SystemInfo.IsFormatSupported method with the GraphicsFormatUsage.ReadPixels flag to query if the format is supported.
When requesting into multiple slices in the same frame, ensure that each slice comes from a different memory allocation. Using multiple slices from the same allocation within a single frame is not supported.