xref: /aosp_15_r20/external/angle/doc/ES31StatusOnD3D11.md (revision 8975f5c5ed3d1c378011245431ada316dfb6f244)
1*8975f5c5SAndroid Build Coastguard Worker# ES31 Status on Direct3D 11
2*8975f5c5SAndroid Build Coastguard Worker
3*8975f5c5SAndroid Build Coastguard Worker| New Features                                       | Status                       | Limitations |
4*8975f5c5SAndroid Build Coastguard Worker|:---------------------------------------------------|:-----------------------------|:------------|
5*8975f5c5SAndroid Build Coastguard Worker| Arrays of arrays (shading language only)           | Fully implemented            | None        |
6*8975f5c5SAndroid Build Coastguard Worker| Compute shaders                                    | Fully implemented            | None        |
7*8975f5c5SAndroid Build Coastguard Worker| Explicit uniform location                          | Fully implemented            | None        |
8*8975f5c5SAndroid Build Coastguard Worker| Framebuffers with no attachments                   | Fully implemented            | None        |
9*8975f5c5SAndroid Build Coastguard Worker| Indirect draw commands                             | Fully implemented            | None        |
10*8975f5c5SAndroid Build Coastguard Worker| Multisample formats for immutable textures         | Fully implemented            | None        |
11*8975f5c5SAndroid Build Coastguard Worker| Program interface queries                          | Fully implemented            | None        |
12*8975f5c5SAndroid Build Coastguard Worker| Shader bitfield operations (shading language only) | Fully implemented            | None        |
13*8975f5c5SAndroid Build Coastguard Worker| Shader layout binding (shading language only)      | Fully implemented            | None        |
14*8975f5c5SAndroid Build Coastguard Worker| Texture gather operations                          | Fully implemented            | None        |
15*8975f5c5SAndroid Build Coastguard Worker| Vertex attribute binding                           | Fully implemented            | None        |
16*8975f5c5SAndroid Build Coastguard Worker| Atomic counters                                    | Implemented with limitations | Atomic counters in non-compute shaders are not implemented yet. |
17*8975f5c5SAndroid Build Coastguard Worker| Shader image load/store operations                 | Implemented with limitations | See notes [1] [below](#notes-1) |
18*8975f5c5SAndroid Build Coastguard Worker| Shader storage buffer objects                      | Implemented with limitations | See notes [2] [below](#notes-2) |
19*8975f5c5SAndroid Build Coastguard Worker| Shader helper invocation (shading language only)   | Hard to implement            | The equivalent of gl_HelperInvocation is WaveIsHelperLane which requres SM6. |
20*8975f5c5SAndroid Build Coastguard Worker| Separate shader objects                            | Unimplemented                | It can be implemented with medium complexity. |
21*8975f5c5SAndroid Build Coastguard Worker| Stencil texturing                                  | Unimplemented                | It can be implemented with medium complexity.  Refer [here](https://stackoverflow.com/questions/34601325/directx11-read-stencil-bit-from-compute-shader). |
22*8975f5c5SAndroid Build Coastguard Worker
23*8975f5c5SAndroid Build Coastguard Worker### Notes [1]
24*8975f5c5SAndroid Build Coastguard Worker* Images in non-compute shaders are not implemented yet.
25*8975f5c5SAndroid Build Coastguard Worker* Multiple image variables are not allowed to be bound to the same image unit which refers to the same layer and level of a texture image. It means image aliasing is not supported.
26*8975f5c5SAndroid Build Coastguard Worker* The same layer and level of a texture are not allowed to be bound to multiple image units.
27*8975f5c5SAndroid Build Coastguard Worker* When a texture is bound to an image unit, the image unit format must exactly match the texture internal format. Similarly, the format layout qualifier for an image variable must exactly match the format of the image unit. Re-interpretation is not supported. See [here](http://anglebug.com/42261723).
28*8975f5c5SAndroid Build Coastguard Worker
29*8975f5c5SAndroid Build Coastguard Worker### Notes [2]
30*8975f5c5SAndroid Build Coastguard Worker* Shader storage blocks in non-compute shaders are not implemented yet.
31*8975f5c5SAndroid Build Coastguard Worker* Multiple shader storage blocks are not allowed to be bound to the same buffer. See [here](http://anglebug.com/42261718).
32