|
Revision tags: llvmorg-18.1.8, llvmorg-18.1.7, llvmorg-18.1.6 |
|
| #
f42117c8 |
| 12-May-2024 |
Xiang Li <python3kgae@outlook.com> |
[DirectX] Replace bitfield version in ProgramHeader. (#91797)
Avoid using bitfield in dxbc::ProgramHeader.
It could potentially be read incorrectly on any host depending on the
compiler.
From [
[DirectX] Replace bitfield version in ProgramHeader. (#91797)
Avoid using bitfield in dxbc::ProgramHeader.
It could potentially be read incorrectly on any host depending on the
compiler.
From [C++17's
[class.bit]](https://timsong-cpp.github.io/cppwp/n4659/class.bit#1)
> Bit-fields are packed into some addressable allocation unit. [ Note:
Bit-fields straddle allocation units on some machines and not on others.
Bit-fields are assigned right-to-left on some machines, left-to-right on
others. — end note ]
For #91793
show more ...
|
|
Revision tags: llvmorg-18.1.5, llvmorg-18.1.4, llvmorg-18.1.3 |
|
| #
c62c7463 |
| 25-Mar-2024 |
Cooper Partin <coopp@microsoft.com> |
Add support for PSV EntryFunctionName (#86296)
This change introduces a version 3 of the PSV data that includes support
for the name of the entry function as an offset into StringTable data to
a n
Add support for PSV EntryFunctionName (#86296)
This change introduces a version 3 of the PSV data that includes support
for the name of the entry function as an offset into StringTable data to
a null-terminated utf-8 string.
Additional tests were added to ensure that the new value was properly
serialized/deserialized from object data.
Fixes #80175
---------
Co-authored-by: Cooper Partin <coopp@ntdev.microsoft.com>
show more ...
|
| #
1538b82f |
| 21-Mar-2024 |
Cooper Partin <coopp@microsoft.com> |
Revert "Add support for PSV EntryFunctionName (#84409)" (#86211)
This reverts commit cde54df39cab3a1d60a3e1862ab341609bee3cc3.
Co-authored-by: Cooper Partin <coopp@ntdev.microsoft.com>
|
| #
cde54df3 |
| 21-Mar-2024 |
Cooper Partin <coopp@microsoft.com> |
Add support for PSV EntryFunctionName (#84409)
This change introduces a version 3 of the PSV data that includes support
for the name of the entry function as an offset into StringTable data to
a n
Add support for PSV EntryFunctionName (#84409)
This change introduces a version 3 of the PSV data that includes support
for the name of the entry function as an offset into StringTable data to
a null-terminated utf-8 string.
Additional tests were added to ensure that the new value was properly
serialized/deserialized from object data.
Fixes #80175
---------
Co-authored-by: Cooper Partin <coopp@ntdev.microsoft.com>
show more ...
|
|
Revision tags: llvmorg-18.1.2, llvmorg-18.1.1 |
|
| #
50136ca1 |
| 28-Feb-2024 |
Xiang Li <python3kgae@outlook.com> |
[DirectX][NFC] Rename ShaderFlag to SHADER_FEATURE_FLAG. (#82700)
This is preparation for add ShaderFlag in DXIL.
For #57925
|
|
Revision tags: llvmorg-18.1.0, llvmorg-18.1.0-rc4, llvmorg-18.1.0-rc3, llvmorg-18.1.0-rc2, llvmorg-18.1.0-rc1, llvmorg-19-init, llvmorg-17.0.6, llvmorg-17.0.5, llvmorg-17.0.4, llvmorg-17.0.3 |
|
| #
9f87522b |
| 05-Oct-2023 |
Chris B <chris.bieneman@me.com> |
[DX] Add support for program signatures (#67346)
For DirectX, program signatures are encoded into three different binary
sections depending on if the signature is for inputs, outputs, or
patches.
[DX] Add support for program signatures (#67346)
For DirectX, program signatures are encoded into three different binary
sections depending on if the signature is for inputs, outputs, or
patches. All three signature types use the same data structure encoding
so they can share a lot of logic.
This patch adds support for reading and writing program signature data
as both yaml and binary data.
Fixes #57743 and #57744
show more ...
|
|
Revision tags: llvmorg-17.0.2, llvmorg-17.0.1, llvmorg-17.0.0 |
|
| #
b799e9da |
| 15-Sep-2023 |
Chris B <chris.bieneman@me.com> |
[DX] Support pipeline state masks (#66425)
The DXContainer pipeline state information encodes a bunch of mask
vectors that are used to track things about the inputs and outputs from
each shader.
[DX] Support pipeline state masks (#66425)
The DXContainer pipeline state information encodes a bunch of mask
vectors that are used to track things about the inputs and outputs from
each shader.
This adds support for reading and writing them throught he YAML test
interfaces. The writing logic in MC is extremely primitive and we'll
want to revisit the API for that, but since I'm not sure how we'll want
to generate the mask bits from DXIL during code generation I didn't want
to spend too much time on the API.
Fixes #59479
show more ...
|
|
Revision tags: llvmorg-17.0.0-rc4, llvmorg-17.0.0-rc3 |
|
| #
0c3f51c0 |
| 11-Aug-2023 |
Chris Bieneman <chris.bieneman@me.com> |
Re-land [DX] Add support for PSV signature elements
The pipeline state data captured in the PSV0 section of the DXContainer file encodes signature elements which are read by the runtime to map input
Re-land [DX] Add support for PSV signature elements
The pipeline state data captured in the PSV0 section of the DXContainer file encodes signature elements which are read by the runtime to map inputs and outputs from the GPU program.
This change adds support for generating and parsing signature elements with testing driven through the ObjectYAML tooling.
Reviewed By: bogner
Differential Revision: https://reviews.llvm.org/D157671
Initially landed as 8c567e64f808f7a818965c6bc123fedf7db7336f, and reverted in 4d800633b2683304a5431d002d8ffc40a1815520.
../llvm/include/llvm/BinaryFormat/DXContainerConstants.def ../llvm/test/ObjectYAML/DXContainer/PSVv1-amplification.yaml ../llvm/test/ObjectYAML/DXContainer/PSVv1-compute.yaml ../llvm/test/ObjectYAML/DXContainer/PSVv1-domain.yaml ../llvm/test/ObjectYAML/DXContainer/PSVv1-geometry.yaml ../llvm/test/ObjectYAML/DXContainer/PSVv1-vertex.yaml ../llvm/test/ObjectYAML/DXContainer/PSVv2-amplification.yaml ../llvm/test/ObjectYAML/DXContainer/PSVv2-compute.yaml ../llvm/test/ObjectYAML/DXContainer/PSVv2-domain.yaml ../llvm/test/ObjectYAML/DXContainer/PSVv2-geometry.yaml ../llvm/test/ObjectYAML/DXContainer/PSVv2-vertex.yaml
show more ...
|
| #
4d800633 |
| 16-Aug-2023 |
Chris Bieneman <chris.bieneman@me.com> |
Revert "[DX] Add support for PSV signature elements"
This reverts commit 8c567e64f808f7a818965c6bc123fedf7db7336f.
|
| #
8c567e64 |
| 11-Aug-2023 |
Chris Bieneman <chris.bieneman@me.com> |
[DX] Add support for PSV signature elements
The pipeline state data captured in the PSV0 section of the DXContainer file encodes signature elements which are read by the runtime to map inputs and ou
[DX] Add support for PSV signature elements
The pipeline state data captured in the PSV0 section of the DXContainer file encodes signature elements which are read by the runtime to map inputs and outputs from the GPU program.
This change adds support for generating and parsing signature elements with testing driven through the ObjectYAML tooling.
Reviewed By: bogner
Differential Revision: https://reviews.llvm.org/D157671
show more ...
|
|
Revision tags: llvmorg-17.0.0-rc2, llvmorg-17.0.0-rc1, llvmorg-18-init |
|
| #
5fdf8605 |
| 18-Jul-2023 |
Chris Bieneman <chris.bieneman@me.com> |
[DX] Fix PSV resource serialization
When writing this initially I missed including the resource stride. This change adds the resources stride to the serialized value.
I've also extended the testing
[DX] Fix PSV resource serialization
When writing this initially I missed including the resource stride. This change adds the resources stride to the serialized value.
I've also extended the testing and error reporting around parsing PSV information. This adds tests to verify that the reader produces meaningful error messages for malformed DXContainer files, and a test that verifies the resource stride is respected in the reader even if the stride isn't an expected or known value (as would happen if the format changes in the future).
This is part of #59479.
Reviewed By: bogner, bob80905
Differential Revision: https://reviews.llvm.org/D155143
show more ...
|
|
Revision tags: llvmorg-16.0.6, llvmorg-16.0.5, llvmorg-16.0.4, llvmorg-16.0.3, llvmorg-16.0.2, llvmorg-16.0.1, llvmorg-16.0.0, llvmorg-16.0.0-rc4, llvmorg-16.0.0-rc3, llvmorg-16.0.0-rc2 |
|
| #
dd3f7b02 |
| 02-Feb-2023 |
Chris Bieneman <chris.bieneman@me.com> |
[DX] Add support for PSV resource bindings
This patch continues implementing DirectX pipeline state validation information by adding support for resource binding metadata.
Reviewed By: python3kgae
[DX] Add support for PSV resource bindings
This patch continues implementing DirectX pipeline state validation information by adding support for resource binding metadata.
Reviewed By: python3kgae
Differential Revision: https://reviews.llvm.org/D143130
show more ...
|
| #
ad93908e |
| 02-Feb-2023 |
Chris Bieneman <chris.bieneman@me.com> |
[DX] Begin adding support for pipeline state
DirectX shader pipeline state validation information is a fairly complicated to serialize data structure. This patch adds the first bit of support for re
[DX] Begin adding support for pipeline state
DirectX shader pipeline state validation information is a fairly complicated to serialize data structure. This patch adds the first bit of support for reading and writing the runtime info structure which comes first in the encoded data.
Subsequent patches will flesh out the remaining fields of the data structure.
There is no official documentation for the format, but the format is roughly documented in the code comment here: https://github.com/microsoft/DirectXShaderCompiler/blob/main/include/dxc /DxilContainer/DxilPipelineStateValidation.h#L731
Reviewed By: python3kgae
Differential Revision: https://reviews.llvm.org/D141649
show more ...
|
|
Revision tags: llvmorg-16.0.0-rc1, llvmorg-17-init, llvmorg-15.0.7 |
|
| #
c302fb5c |
| 04-Dec-2022 |
Fangrui Song <i@maskray.me> |
[Object] llvm::Optional => std::optional
|
|
Revision tags: llvmorg-15.0.6, llvmorg-15.0.5, llvmorg-15.0.4 |
|
| #
2556ba4a |
| 26-Oct-2022 |
Chris Bieneman <chris.bieneman@me.com> |
[ObjectYAML] Add support for DXContainer HASH
DXContainer files contain a part that has an MD5 of the generated shader. This adds support to the ObjectYAML tooling to expand the hash part data and h
[ObjectYAML] Add support for DXContainer HASH
DXContainer files contain a part that has an MD5 of the generated shader. This adds support to the ObjectYAML tooling to expand the hash part data and hash iteself in preparation for adding hashing support to DirectX code generation.
Reviewed By: python3kgae
Differential Revision: https://reviews.llvm.org/D136632
show more ...
|
|
Revision tags: llvmorg-15.0.3, working, llvmorg-15.0.2 |
|
| #
49dc58f5 |
| 20-Sep-2022 |
Chris Bieneman <chris.bieneman@me.com> |
[DX] [ObjectYAML] Support DX shader feature flags
DXContainers contain a feature flag part, which stores a bitfield used to denote what underlying hardware features the shader requires. This change
[DX] [ObjectYAML] Support DX shader feature flags
DXContainers contain a feature flag part, which stores a bitfield used to denote what underlying hardware features the shader requires. This change adds feature flags to the DXContainer YAML tooling to enable testing generating feature flags during HLSL code generation.
Depends on D133980
Reviewed By: lhames
Differential Revision: https://reviews.llvm.org/D134315
show more ...
|
| #
63accaf4 |
| 28-Sep-2022 |
Chris Bieneman <chris.bieneman@me.com> |
[NFC] Refactor DXContainer to support more parts
This patch refactors some of the DXContainer Object and YAML code to make it easier to add more part parsing.
DXContainer has a whole bunch of const
[NFC] Refactor DXContainer to support more parts
This patch refactors some of the DXContainer Object and YAML code to make it easier to add more part parsing.
DXContainer has a whole bunch of constant values, so I've added a DXContainerConstants.def file which will grow with constant definitions, but starts with just part identifiers. I've also added a utility to parse the part magic string into an enum, and converted the code to use that utility and the enum instead of the part literal string.
Reviewed By: lhames
Differential Revision: https://reviews.llvm.org/D133980
show more ...
|
|
Revision tags: llvmorg-15.0.1, llvmorg-15.0.0, llvmorg-15.0.0-rc3, llvmorg-15.0.0-rc2, llvmorg-15.0.0-rc1, llvmorg-16-init |
|
| #
a7938c74 |
| 26-Jun-2022 |
Kazu Hirata <kazu@google.com> |
[llvm] Don't use Optional::hasValue (NFC)
This patch replaces Optional::hasValue with the implicit cast to bool in conditionals only.
|
| #
3b7c3a65 |
| 25-Jun-2022 |
Kazu Hirata <kazu@google.com> |
Revert "Don't use Optional::hasValue (NFC)"
This reverts commit aa8feeefd3ac6c78ee8f67bf033976fc7d68bc6d.
|
| #
aa8feeef |
| 25-Jun-2022 |
Kazu Hirata <kazu@google.com> |
Don't use Optional::hasValue (NFC)
|
|
Revision tags: llvmorg-14.0.6, llvmorg-14.0.5, llvmorg-14.0.4 |
|
| #
21c94523 |
| 19-May-2022 |
Chris Bieneman <chris.bieneman@me.com> |
[DX][ObjYAML] Support for parsing DXIL part
This patch adds support for parsing the DXIL part data into the ObjectYAML tooling.
The DXIL part has additional headers describing the shader and bitcod
[DX][ObjYAML] Support for parsing DXIL part
This patch adds support for parsing the DXIL part data into the ObjectYAML tooling.
The DXIL part has additional headers describing the shader and bitcode data and stores serialized bitcode after the headers.
Depends on D124945
Reviewed By: kuhar
Differential Revision: https://reviews.llvm.org/D126795
show more ...
|
| #
352c395f |
| 03-May-2022 |
Chris Bieneman <chris.bieneman@me.com> |
[ObjectYAML][DX] Add dxcontainer2yaml support
This change finishes fleshing out the ObjectYAML tools to support converting DXContainer files into yaml representations.
Depends on D124944
Reviewed
[ObjectYAML][DX] Add dxcontainer2yaml support
This change finishes fleshing out the ObjectYAML tools to support converting DXContainer files into yaml representations.
Depends on D124944
Reviewed By: lhames
Differential Revision: https://reviews.llvm.org/D124945
show more ...
|