Граф коммитов

262 Коммитов

Автор SHA1 Сообщение Дата
Jesse Natalie d6d3f02bac
Fix DxilPayloadFieldAnnotation::GetPayloadFieldQualifier (#6942)
Fixes #6941
2024-10-04 09:18:38 -07:00
Xiang Li 8b33431849
Remove WaveMatrix (#6807)
Remove WaveMatrix from main branch.
The DXIL operations are changed to Reserved to avoid affect DXIL
operation ID.
2024-08-01 10:52:13 -07:00
Xiang Li 00cd8233d5
[DxilOp] Allow generation of illegal DXIL operations. (#6543)
This change removes the IsOverloadLegal check in OP::GetOpFunc.

It will permit the generation of illegal DXIL operations. Subsequently,
the validation should catch these illegal DXIL operations if they are
not optimized later in SimplifyDxilCall.


Fixes #6410
2024-04-26 20:52:46 +00:00
Jannik Silvanus e2f0b98440
Don't reuse WaveGetLaneIndex result across thread repacking points (#5607)
Wave intrinsics such as `WaveGetLaneIndex()` are invalidated at DXR
thread repacking
points such as `CallShader()`. We were however reusing the result of
`WaveGetLaneIndex()`.

Fix this by marking it as `Readonly` instead of `Readnone`.

Add a test case that also covers other wave intrisics, which are handled
correctly.

Fixes #5034.

---------

Co-authored-by: Jannik Silvanus <jasilvanus@users.noreply.github.com>
2024-04-18 13:02:34 -07:00
Tex Riddell 66ba5a1529
Add alignment to NodeRecordType including DXIL metadata update (#6279)
This change adds NodeRecordType alignment field to RDAT to make it
possible to validate pointer and stride alignment in the runtime.

This includes a change to DXIL metadata to preserve the record alignment
without requiring recovery by looking for GetNodeRecordPtr.

Fixes #6270
2024-02-29 11:22:56 -08:00
Tex Riddell 22bb0786b6
Fix downlevel validator compatibility with DXR 1.1 flag (#6333)
It turns out that in the prior validator version, if a subobject
required DXR 1.1, the DXR 1.1 flag would be set on each function in RDAT
output, as well as the global flags. It didn't appear this was the case
through a D3DReflect test because that goes through disassembly to
assembly step, where subobjects are lost because they aren't in the llvm
IR. The previous change assumed this was not the case when the
subobjects were removed, but this removal occurs after the RDATWriter
constructor, which does the full RDAT serialization since size if
required right away.

This restores the detection code and hooks it into
DxilModule::ComputeShaderCompatInfo when validator version is in range
[1.5, 1.7]. DXR 1.1 was introduced in 1.5, and we no longer tag every
function as requiring DXR 1.1 based on subobjects in 1.8.

At the moment, there is no way to CHECK the subobject RDAT in D3DReflect
because they get stripped from the module (even reflection and debug
modules) before serialization, and the test path for D3DReflect goes
through a disassemble/re-assemble step between the prior stage and the
D3DReflect stage.

Fixes #6321 (really).
2024-02-20 17:58:45 -08:00
Xiang Li 5dee81ce1d
Fix crash in DXIL.dll caused by illegal DXIL intrinsic. (#6302)
Replace assert on illegal DXIL op with return illegal value. Check the
illegal cases in validation.

Fixes #6168
2024-02-20 11:07:16 -08:00
Tex Riddell 2314d06cfe
New barrier DXIL Op fixes for Validation and RDAT function compatibility info (#6291)
Fix barrier allowed ops and flags by shader kind

New barrier operations lacked validation and for RDAT info: had
incorrect min target and shader stage flags.

- Identify barrier DXIL operations with new `is_barrier` in `hctdb.py`
and generated `OP::IsDxilOpBarrier`.
- Identify when a barrier op requires shader stage with group
(compute-like stage), or when it requires node memory.
- Add new `OptFeatureInfo_RequiresGroup` to identify function only
compatible with a shader stage with a visible group for access to
groupshared memory or use of group sync.
- Translate to original `BarrierMode` when compatible; adds
`BarrierMode::Invalid` to identify invalid cases.
- Account for `DXIL::MemoryTypeFlags::AllMemory` being allowed and
auto-masked by driver.
- Properly set min shader model and compatible shader stage flags.
- Validate barrier for shader stage.
- Added new barriers to counters which were missing.

Adressing parts of: #6256 and #6292
Fixes #6266
2024-02-20 10:44:34 -08:00
Tex Riddell fafbc42725
Don't set RaytracingTier1_1 based on subobjects; enable flag validation (#6320)
In validator version 1.7 and below, the RaytracingTier1_1 module flag
was set on every function if any StateObjectConfig subobject had the
AllowStateObjectAdditions flag set. This was incorrect, as the
requirement is validated in the runtime based on the use of the
subobject instead. Subobjects are removed from the module and placed in
RDAT during container serialization, so the requirement would be lost
when recomputing the flags in validation. This didn't break validation
because flag validation was completely disabled for libraries!

This change fixes this problem, and allows DxilValidation to validate
ShaderFlags because they will no longer mismatch due to this issue.
Running CollectShaderFlagsForModule is also necessary for collecting
per-function shader flags which will be used by call graph validation in
a subsequent change, so enabling flag validation unblocks that as well.

Fixes #6321
2024-02-16 23:16:14 +00:00
Tex Riddell 627e400dea
NFC: Fix switch with missing default case in DxilShaderModel.cpp (#6288)
This missing default case statement would cause build break when
compiling with additional warning settings, such as /W4 /WX in VC++.

Fixes #6287.
2024-02-13 01:42:59 +00:00
Tex Riddell b3be6f2522
Correct metadata load for NodeRecordType for robustness (#6277)
Metadata loading for node record properties assumed fixed positions for
values in a (key,value) property list, skipping and ignoring the keys.

This was not correct, fragile, and not the intended implementation of
the key,value property pattern.

There is no functional change, but this makes the loader robust to
additional properties instead of crashing or loading the wrong thing.

Fixes #6276
2024-02-12 19:26:48 +00:00
Joshua Batista cadf3bfed1
[Sema] Add final touches to wave size range implementation (#6202)
Upon further discussion, the team has agreed that in certain degenerate
cases, the current diagnostics are insufficient.
In the case that min == max in the wave size range attribute, a
defaultError warning should be emitted. Additionally, there should be an
explicit way to handle the case where 0,0,0 is passed to the wavesize
range attribute.
This PR directly handles and tests both of these cases.
Fixes #6161

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-02-10 02:15:59 +00:00
Tex Riddell 9c518dbd94
RDAT: Check flags and WaveSize for min SM; fix flag detection and merging (#6207)
Add ShaderKind::Last_1_8 for shader mask
Add shader model comments before flag groupings in DxilConstants.h and DxilShaderFlags.

Add missing flag checks for min shader model in RDAT function info. Move ShaderCompatInfo computation into DxilModule, propagate callee info.

Move computation of shader model requirements based on flags into DxilModule. Finalize requirements for entry functions in AdjustMinimumShaderModelAndFlags.

Fixes for function level flag tracking:
- DerivativesInMeshAndAmpShaders: use flag to track deriv use, then adjust for entry functions.
- hasUAVs: based on resource use in function instead of global resources.
- WriteableMSAATextures: based on use in function instead of global resources.
  - Also catch cases for dynamic res from any use by looking at create/annotate handle, not just the TextureStoreSample op.
- RaytracingTier1_1: move module-level detection to CollectShaderFlagsForModule
- Marked deriv and quad ops as being supported in node.
- Fixed SampleCmpBias to be considered gradient op.
- Update RDAT definitions to dump more useful info for testing

Fixes #6218.
2024-02-09 17:14:12 -08:00
Xiang Li 79a290e719
[Sema] Not report error when invalid intrinsic call is not used. (#6140)
Added DiagnoseUsedHLSLMethodCall which only report error when the
MethodCall is used.
DiagnoseUsedHLSLMethodCall is used in DiagnoseTranslationUnit. 
In DiagnoseTranslationUnit, traverse all visited functions in call
graph, diagnose illegal intrinsic call inside these functions.

Shader kind is also checked in DiagnoseUsedHLSLMethodCall.

Fixes https://github.com/microsoft/DirectXShaderCompiler/issues/5855

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-01-23 19:51:24 -08:00
Tex Riddell dcb618a2f1
Fix bad WaveSize non-range PSV0 and improve things (#6172)
PSV0 MaximumExpectedWaveLaneCount was incorrectly set to 0 for
non-range.

Create struct for WaveSize in DxilFunctionProps.h.
Centralize encoding and validation logic there.
Use validation logic in both SemaHLSL and DxilValidation.

Remove test requiring newer shader model in CodeGenHLSL.
Add comprehensive test for compute and node, cs and lib targets, SM 6.6
and 6.8, testing ast, metadata and RDAT.
Add PSV0 tests to catch incorrect runtime data.

Update validation rules and test for more cases.
2024-01-22 17:28:26 -08:00
Natalie Chouinard 5ed628dc7d
Make clang-format happy (#6177)
The build is failing due to clang-format modifying these lines. I've
changed them to what clang-format wants even though it's a bit odd, and
updated the CMake script to make the error message more clear when this
type of failure occurs.
2024-01-22 11:57:34 -08:00
Joshua Batista 00e170f348
Implement wave size range (#6167)
Wave Size should be able to take a range of possible wavesizes. This PR
aims to implement what is described in this spec:
https://github.com/microsoft/hlsl-specs/pull/149/files

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-01-20 06:16:03 +00:00
Xiang Li ae9b762a30
[SM68] Add feature flag for SampleCmpBias/Grad and StartInstance/VertexLocation (#6164)
New feature flag ShaderFeatureInfo_SampleCmpGradientOrBias = 0x80000000
and
ShaderFeatureInfo_ExtendedCommandInfo = 0x100000000 were added. 
They will be set when SampleCmpBias/Grad startInstance/VertexLocation
exists.

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-01-20 04:01:56 +00:00
Helena Kotas 6d8645f985
Add DXIL 1.8 op code cap and move WaveMatrix intrisics to SM 6.9 (#6163)
Adds max opcode value for DXIL 1.8 and moves WaveMatrix intrinsics into
future shader model 6.9.

Contributes to #6133
Related to #6125
2024-01-20 01:34:49 +00:00
Joshua Batista f171ae8d7b
[NFC] Remove misleading function (#6088)
The IsRay() function defined in the ShaderModel class can be misleading.
It is included in a set of functions that are used to test whether or
not the shader in question was targeted to a specific shader stage.
However, it is impossible for a shader to be targeted to, say, the
"raygeneration" stage, or any other stages associated with the kinds
that the IsRay() function checks for. Like the "node" shader kind, a
shader can only have these shader kinds if the associated attribute is
found on the function declaration. To prevent confusion, and to keep the
Is*() functions inside the ShaderModel class restricted to only those
targetable shader stages, the IsRay() function can be removed. This PR
comes as a response to #6008
2023-12-02 01:22:42 +00:00
Helena Kotas 01cedea8b5 Addressing code review feedback
- remove unused "class." parsing
- use llvm_unreachable instead of DXASSERT
- remove priority 2 from WaveMatrix execution tests
- use StringSwitch in validator arg parsing
- remove unused lit configs
2023-11-08 08:26:53 -08:00
Helena Kotas 3e25309846 clang-format 2023-11-06 11:29:51 -08:00
Helena Kotas 96bb59b95a Merge branch 'main' into merge-from-main-11-2-no3 2023-11-02 14:25:31 -07:00
Tex Riddell 52ace1c57c
Fix module loading and validation issues (#5880)
Fix module loading and validation issues

There are a couple interacting issues:
1. When RefreshCache occurs, it doesn't fill in the m_pResRetType cache.
  - This is because in GetOpFunc, if it finds a function matching the
    expected name, it simply returns that, skipping function type
    construction.
- This causes a validation error if CheckAccessFullyMapped is validated
    before a function that calls it.  This depends on the order of
    function declarations/definitions in the module.
- The solution is to move the check after type construction, and verify
    that the function type matches expectations as well.
2. When RefreshCache() and FixOverloadNames() was called from
DxilOperations
    constructor, the m_LowPrecisionMode has not yet been set, leading to
    incorrect overload types when allowing function type construction to
    proceed in GetOpFunc before looking for a matching function by name.
  - This leads to an incorrect type for 16-bit CBufRet type being used.
  - The solution is to move RefreshCache() and FixOverloadNames() calls
to after we actually know the m_LowPrecisionMode, so that the correct
    types may be constructed.

Rename hlsl::OP::SetMinPrecision to InitWithMinPrecision to make clear
what's being done.
Added validation tests to verify the fixes.
Fixed validation test that produced invalid DXIL op function signature.
Fix HLModule not setting min-precision mode when loading from metadata.

Fixes #5879
2023-11-01 12:32:06 -07:00
Xiang Li 3d1b501290
Add SV_BaseVertexLocation and SV_StartInstanceLocation to VSIn (#5770)
New VS Input semantics SV_BaseVertexLocation and
SV_StartInstanceLocation are added for
BaseVertexLocation and StartInstanceLocation of
https://learn.microsoft.com/en-us/windows/win32/api/d3d12/nf-d3d12-id3d12graphicscommandlist-drawindexedinstanced

Also added DXIL operation for these 2 input semantics.

Fixes https://github.com/microsoft/DirectXShaderCompiler/issues/2907
2023-10-31 14:43:37 -04:00
Xiang Li 7c157be44d
Remove integer variants of SampleCmp (#5930)
Disable integer resource for SampleCmp/CmpLevel/CmpLevelZero.

Fixes #5564
2023-10-25 19:11:48 -04:00
David Peixotto 481090a822
[bug] Fix crash when lowering multi-dimension groupshared variable (#5895)
This commit fixes a crash in the compiler when lowering a groupshared
variable with a multi-dimensional array type. The root cause of the bug
was that we had a nested gep expression that could not be merged into a
single gep because of an intervening addrspacecast.

The `MultiDimArrayToOneDimArray` pass flattens the multi-dimension
global variables to a single dimension. It relies on the `MergeGepUse`
function to flatten any nested geps into a single gep that fully
dereferences a scalar element.

The fix is to modify the `MergeGepUse` function to look through
addrspacecast instructions when trying to merge geps. We can now merge
geps like

    gep(addrspacecast(gep(p0, gep_args0)) to p1*, gep_args1)

into

    addrspacecast(gep(p0, gep_args0+gep_args1) to p1*)

We also added a call to `removeDeadConstantUsers` before flattening
multi-dimension globals because we can have some dead constants hanging
around after merging geps and these constants should be ignored by the
flattening pass.
2023-10-23 11:00:36 -07:00
Tex Riddell 1a4ff5c147
Make DxilSignatureElement::m_SemanticName canonical for system values (#5889)
When DxilModule metadata is serialized, semantic strings for system
values are canonicalized. If these strings are used anywhere, this can
lead to a difference in behavior between an original DxilModule that has
not undergone serialization and one that has been deserialized.

This change canonicalizes the string as soon as a DxilSignatureElement
is created, thereby removing the possibility of accidentally relying on
the non-canonical string for a system value.
2023-10-18 23:18:38 +00:00
Tex Riddell 50e0126788
Support globallycoherent RWDispatchNodeInputRecord (#5816)
- Add GloballyCoherent flag to NodeIOFlags
- Fix NodeFlags::IsOutputNode; add IsRecord, IsOutput, IsOutputRecord
- Improve globallycoherent diagnostic
- Update and add tests

Fixes #5813
2023-10-11 23:13:49 +00:00
Tex Riddell deeb8225fa
Update Barrier intrinsic to merge ACCESS and SYNC flags (#5825)
- Merge ACCESS_FLAG AccessFlags and SYNC_FLAG SyncFlags into new
BARRIER_SEMANTIC_FLAG SemanticFlags according to spec update
- Update lowering, DxilValidation, and tests
- Delete now-redundant validation tests

Fixes #5780
2023-10-10 15:30:53 -07:00
Xiang Li c03968f6ee
Set tiled resource in shader flags. (#5830)
If clamp is not undef, mark tiled resource.

Fixes https://github.com/microsoft/DirectXShaderCompiler/issues/5800
2023-10-10 10:45:02 -07:00
Joshua Batista 20f305c96c
Allow wavesize attribute on library shaders (#5758)
This PR moves the wavesize diagnostics over to sema, and adjusts them so
that the error messages are clearer and so that wavesize attributes are
allowed on library shaders.
Fixes #5374
2023-09-26 17:49:22 -07:00
Chris B b367ed06f7
Cbieneman/update staging 2023 09 21 (#5765)
Merge `main` to `staging-sm-6.8`
2023-09-22 14:02:11 -05:00
Greg Roth 2b7e144030
Indicate extra metadata with unknown nodeio tag (#5711)
When unrecognized metadata is encountered, it needs to be recorded so
that validation will fail. Additionally, this removes the assert that
was there so that the code can be tested. Asserts for code that can be
encountered through potential input isn't ideal anyway.

Adds testing for the same which involves introducing dxv testing into
the llvm test directory requiring enabling .ll tests for that
subdirectory and enabling lit to understand %dxv.

Incidentally fixes some comments in unrelated workgraph tests that had
outdated values for some of the metadata that might lead to confusion

Fixes #5609
2023-09-21 15:08:05 -07:00
Chris Bieneman 16fa30121e Merge remote-tracking branch 'origin/main' into
cbieneman/update-staging-2023-09-21
2023-09-21 13:04:47 -05:00
Xiang Li 2325bc539c
Add SampleCmpBias and SampleCmpGrad (#5716)
1. Add DXIL opcode for SampleCmpBias and SampleCmpGrad.
Merged from https://github.com/microsoft/DirectXShaderCompiler/pull/5562

2. Add hlsl intrinsic for  SampleCmpBias and SampleCmpGrad.
3. Lower the intrinsic to DXIL.

This is for https://github.com/microsoft/hlsl-specs/issues/30
Fixes #5560

---------

Co-authored-by: Greg Roth <grroth@microsoft.com>
2023-09-20 20:31:55 -04:00
Chris B 589a48d6f6
[NFC] Fix clang-formatting generated sources (#5755)
Clang-format determines if a header is the "main" header by looking at
the header name without the last extension and matching it against the
source file (with some extra handling for cuda files).

The automation generating temporary files with a `.tmp` suffix tripped
this up so it wasn't matching the "main" header when sorting includes.

This corrects the issue by writing temporaries to a tmp directory
instead of munging the suffix.
2023-09-20 12:17:10 -05:00
Chris Bieneman 2169fc1c27 Merge remote-tracking branch 'origin/main' into cbieneman/clang-format-6.8 2023-09-19 09:37:40 -05:00
Chris Bieneman 325096a001 Merge commit 'd949f78f69c0620fdba7320c2014424f4ecdd14f' into cbieneman/clang-format-6.8 2023-09-19 09:35:16 -05:00
Chris B 37ed613864
[NFC] Clang-format DXC sources (#5602)
This change applies clang-format to all of the sources added in DXC that
were not part of the original LLVM/Clang 3.7 release when DXC forked.
This provides consistent code formatting across the codebase.

Fixes #5591.
2023-09-19 07:49:22 -05:00
Greg Roth eb252f0f33
Merge branch 'main' into 'staging-sm-6.8' (#5741)
Conflicts mostly to do with removing SAL annotations

---------

Signed-off-by: Nathan Gauër <brioche@google.com>
Co-authored-by: Helena Kotas <hekotas@microsoft.com>
Co-authored-by: Xiang Li <python3kgae@outlook.com>
Co-authored-by: Chris B <cbieneman@microsoft.com>
Co-authored-by: Justin Bogner <mail@justinbogner.com>
Co-authored-by: Steven Perron <stevenperron@google.com>
Co-authored-by: Cassandra Beckley <cbeckley@google.com>
Co-authored-by: Natalie Chouinard <1953083+sudonatalie@users.noreply.github.com>
Co-authored-by: Jeff Noyle <jeffno@microsoft.com>
Co-authored-by: Nathan Gauër <brioche@google.com>
Co-authored-by: Tex Riddell <texr@microsoft.com>
Co-authored-by: r-a-sattarov <51679282+r-a-sattarov@users.noreply.github.com>
Co-authored-by: David Peixotto <davpeix@microsoft.com>
Co-authored-by: Joshua Batista <jbatista@microsoft.com>
Co-authored-by: Antonio Maiorano <amaiorano@google.com>
Co-authored-by: Minmin Gong <gongminmin@msn.com>
2023-09-18 22:01:12 -07:00
Chris B 2431f3f0a5
[NFC] Integrate clang-format to hctgen (#5732)
This integrates formatting generated sources with clang-format with the
hctgen generation process.

This change makes a few small adjustments to how the build-time header
generation works. This change, disables automated build-time generation
for C++ sources if you don't have clang-format available on your system.

CMake can automatically detect clang-format installed as part of Visual
Studio, or based on your PATH. You can also explicitly set
`CLANG_FORMAT_EXE` when configuring to manually override. **Developers
on macOS** will need to install clang-format manually and place it on
their path to generate DXC's generated sources.

If clang-format cannot be found and `HLSL_COPY_GENERATED_SOURCES` is On
a fatal error will be reported at configuration time.

This change _does not_ make clang-format a requirement to build DXC, but
it does make it a requirement if you are modifying the generated
sources.
2023-09-18 21:10:30 -05:00
Joshua Batista a79a8a0726
Add profile target shader attribute to entry point function declaration (#5627)
This PR will automatically add the target profile shader stage as a
HLSLShader attribute to the function declaration that represents the
entry point. If the entry point doesn't exist (in the case of library
shaders), then this behavior won't happen.
Fixes #5626
2023-09-14 16:33:38 -07:00
Chris B 3266a87f9a
[NFC] Remove SAL annotations from internal APIs (#5639)
We don't keep these annotations up to date or rely on them, so to
simplify our platform layering and ease code formatting this change
removes all the SAL annotations from internal APIs. This change also
replaces most `_Analysis_Assme_(...)` annotations with `assert(...)`.

One `_Analysis_Assume_` in ParseDecl.cpp needed to be updated because it
was incorrect. The code was `_Analysis_Assume_(assert(name.size() >
sizeof("space"));`. When converted to an `assert` it fired in our test
suite because the sizeof a string literal includes the null terminator,
but the size of a StringRef does not.

A few of the `_Analysis_Assume_` annotations were removed because they
didn't make sense (like the ones inside the `DXASSERT` implementation,
and a few others were removed to avoid introducing additional header or
linkage dependencies.

This change does not introduce any functional or behavioral changes.
2023-09-14 08:59:49 -05:00
Joshua Batista 034ed24f5b
[DCE] Move output complete removal code later to DCE (#5620)
Elimination of incorrect output complete calls was located in an awkward
spot. The code has been moved over to DCE.
Fixes #5363
2023-09-13 13:34:30 -07:00
Greg Roth af42292ab4 Merge 'main' into 'staging-sm-6.8' 2023-09-05 16:28:25 -07:00
Tex Riddell 9a2d4d853b
Fix asserts when compiling node objects with -Od (#5598)
IsHLSLNodeIOType is supposed to capture all node object types, but was
missing output record and output array types.

TranslateHLCastHandleToRes had LLVM_FALLTHROUGH in for two cases where
it made no sense to fall through to the next case.

MergeGepUse is needed after lowering GetRecordPtr to collapse GEP chains
that could result in intermediate multi-dimension array pointers from
GEPs, which is considered an invalid DXIL type.

Updated some tests for -Od compilations. Added a test for the multi-dim
GEP case.

Some CHECKs needed specialization for -Od:
- align 4 added to load/store only with optimizations enabled
- no CSE of index/annotate node handle
- also, use CHECK-LABEL to make failure investigations easier

Fixes #5597
2023-08-25 17:20:59 -07:00
Chris B 64348c7eec
[NFC] Prepare DXC sources for clang-format (#5571)
This change prepares DXC sources to be ready to clang-format. This
change adds annotations to skip formatting parts of the code that will
break if clang-format modifies them due to include ordering or generated
C++. It also adds missing include and forward declarations where
clang-formatting resulted in moving things around that caused code
breakages.
2023-08-23 15:15:21 -05:00
Greg Roth 37cf6dd430
Move work graph CodeGen diagnostics to Sema (#5467) (#5577)
Move work graph related diagnostics from CodeGen to Sema in order to
provide earlier detection of invalid code, which will help ensure that
the generated AST is valid.

Also replace tests for these with verifier tests.

Fixes #5352

---------

Co-authored-by: Tim Corringham <tcorring@amd.com>
Co-authored-by: Greg Roth <grroth@microsoft.com>
(cherry picked from commit 327e5827cf)

Co-authored-by: Tim Corringham <timothy.corringham@amd.com>
2023-08-22 10:58:48 -07:00
Chris Bieneman 7f6d946c4b Merged PR 5704: Add SM 6.8 preview features to release-preview-1.8.2306
Add Shader Model 6.8 features in preview state: Work Graphs and Wave Matrix.

This code is considered preview ready, with more work planned before retail shaders can be compiled to Shader Model 6.8.
2023-06-21 01:59:32 +00:00