Skip to content

Latest commit

 

History

History
188 lines (135 loc) · 4.84 KB

File metadata and controls

188 lines (135 loc) · 4.84 KB

SPV_INTEL_bindless_images

Name Strings

SPV_INTEL_bindless_images

Contact

To report problems with this extension, please open a new issue at:

Contributors

  • Duncan Brawley, Codeplay

  • Przemek Malon, Codeplay

  • Peter Žužek, Codeplay

  • Chedy Najjar, Codeplay

  • Sean Stirling, Codeplay

  • Isaac Ault, Codeplay

  • Victor Lomuller, Codeplay

Notice

Copyright © Codeplay Software Limited. All rights reserved.

Status

In Development

Version

Last Modified Date

2024-05-01

Revision

7

Dependencies

This extension is written against the SPIR-V Specification, Version 1.6 Revision 1.

This extension requires SPIR-V 1.0.

Overview

This extension adds support for bindless images. This is done by adding support for SPIR-V to convert unsigned integer handles to images, samplers and sampled images.

Bindless images are a feature that provides flexibility on how images are accessed and used, such as removing limitations on how many images can be accessed as well as potentially improving performance. This is an improvement on the legacy bound images model which is a holdover from binding slots in hardware which used to be limited in number.

Extension Name

To use this extension within a SPIR-V module, the following OpExtension must be present in the module:

OpExtension "SPV_INTEL_bindless_images"

New Capabilities

This extension introduces a new capability:

BindlessImagesINTEL

New Instructions

Instructions added under BindlessImagesINTEL capability.

OpConvertHandleToImageINTEL
OpConvertHandleToSamplerINTEL
OpConvertHandleToSampledImageINTEL

Token Number Assignments

BindlessImagesINTEL

6528

OpConvertHandleToImageINTEL

6529

OpConvertHandleToSamplerINTEL

6530

OpConvertHandleToSampledImageINTEL

6531

Modifications to the SPIR-V Specification, Version 1.6, Revision 2

Modify Section 3.49.10, Image Instructions, adding to the end of the list of instructions:

OpConvertHandleToImageINTEL

Converts an unsigned integer pointed by Operand to image type.

Unsigned integer is either a 32 or 64 bit unsigned integer. Depending on if the addressing model is set to Physical32 or Physical64.

Result type must be an OpTypeImage.

4

6529

<id> Result Type

Result <id>

<id> Operand

OpConvertHandleToSamplerINTEL

Converts an unsigned integer pointed by Operand to sampler type.

Unsigned integer is either a 32 or 64 bit unsigned integer. Depending on if the addressing model is set to Physical32 or Physical64.

Result type must be an OpTypeSampler.

4

6530

<id> Result Type

Result <id>

<id> Operand

OpConvertHandleToSampledImageINTEL

Converts an unsigned integer pointed by Operand to sampled image type.

Unsigned integer is either a 32 or 64 bit unsigned integer. Depending on if the addressing model is set to Physical32 or Physical64.

Result type must be an OpTypeSampledImage.

4

6531

<id> Result Type

Result <id>

<id> Operand

Modify Section 3.31, Capability, adding row to the capability table:

Capability Implicitly Declares

6528

BindlessImagesINTEL

Issues

None Yet.

Revision History

Rev Date Author Changes

1

2023-03-23

Duncan Brawley

Initial public release

2

2023-03-30

Duncan Brawley

Updated token assignments

3

2023-05-29

Duncan Brawley

Updated token assignments and fix capitalization

4

2023-06-13

Duncan Brawley

Remove need for OpHandleAddressingModeINTEL instruction

5

2024-02-23

Duncan Brawley

Remove OpConvertHandleToSampledImageINTEL instruction and clarify return types

6

2024-03-25

Duncan Brawley

Wording/formatting improvements, clarify sections edited, make capability addition explicit and substitute instruction numbers

7

2024-05-01

Duncan Brawley

Add OpConvertHandleToSampledImageINTEL instruction