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

429 Коммитов

Автор SHA1 Сообщение Дата
Young Kim e507d99e4e fix merge conflict on SROA 2018-04-10 17:33:37 -07:00
Young Kim 0777a7a020 Merge branch 'master' into rtmaster 2018-04-10 16:47:47 -07:00
Tex Riddell 0021e993a2 Merged PR 56: Avoid inserting other insts before allocas in several passes.
Avoid inserting other insts before allocas in several passes.

- Improve code that creates allocas/non-allocas to keep allocas first
- Add helper functions to dxilutil
- Use name AllocaBuilder for CreateAlloca for clarity
2018-04-10 23:33:41 +00:00
Young Kim 0bc25bd790 Revert dxilpipelinestatevalidation namespaces 2018-04-10 12:31:30 -07:00
Lei Zhang 0a8b8c4e1d
[spirv] Rename -fvk-use-glsl-layout to -fvk-use-gl-layout (#1206)
GLSL as a shading language does not define the layout rules for
std140/std430; the OpenGL graphics environment defines that.

This is also more consistent with -fvk-use-dx-layout.
2018-04-10 10:25:26 -04:00
Young Kim 33a8ad5130 Merged PR 61: Implement DxilRuntimeRefleciton API for runtime
DxilRuntimeReflection uses RDATTableReader to obtain information about the library. InitFromRDAT call will allocate all memory required to get DXIL_LIBRARY_DESC.
2018-04-10 00:08:50 +00:00
Lei Zhang 99c142be0b
[spirv] Add support for DX layout rules (#1198)
These layout rules can be turned on with -fvk-use-dx-layout.
For both cbuffer/tbuffer and structured buffers.
2018-04-08 12:50:57 -04:00
Ehsan 2a0b7c49fd
[spirv] Add -fspv-target-env command line option. (#1187)
* [spirv] Add -fspv-target-env command line option.

The valid values for this option currently are:
vulkan1.0
vulkan1.1

If no target environment is specified, vulkan1.0 is used as default.
2018-04-03 09:12:51 -04:00
Tex Riddell 335ee949bb More places to be cautious about alloca vs. non-alloca insert locs.
- some builder name changes for consistency
2018-03-29 18:05:38 -07:00
Xiang Li 357803d342
Don't sink sample coordinate into control flow. (#1188) 2018-03-29 16:33:59 -07:00
Lei Zhang 241d32c810
[spirv] Allow explicitly controlling SPIR-V extensions (#1151)
Added FeatureManager to record all extensions specified from
the command-line and emit error if trying to use one not permitted.

Added command-line option -fspv-extension= to specify
whitelisted extensions.
2018-03-27 17:42:16 -04:00
Xiang_Li (XBox) 1d91a0a5b1 Merged PR 59: Remove hl functions has body and always inline before DxilGeneration to avoid
Remove hl functions has body and always inline before DxilGeneration to avoid fail to find resource for update counter.
2018-03-27 21:35:10 +00:00
Sebastian Tafuri 44dff38588 Silence unusued variable warning when building without asserts (#1073)
* Silence unusued variable warning when building without asserts

* Spaces instead of tabs

* Replaced DXASSERT with DXASSERT_LOCALVAR instead
2018-03-27 09:27:17 -07:00
Lei Zhang 236cdc1cdf
Hook up --help-hidden with PrintHelp() (#1060)
We have defined --help-hidden in HLSLOptions.td but the compiler
is not set up to respect it. This commit hooks up them.
2018-03-27 12:08:11 -04:00
Xiang Li a489c2ec25
Transform mad(a, 0, b) into b. (#1150) 2018-03-19 18:04:56 -07:00
Lei Zhang 0d8a15a61a
[spirv] Better reflection support via new extensions (#1111)
This commit uses the HlslCounterBufferGOOGLE decoration to link
the main RW/Append/Consume StructuredBuffer with its associated
counter buffer. It also uses HLSLSemanticGOOGLE to decorate
stage IO variables with their semantic strings from the source code.
2018-03-17 13:05:31 -04:00
Young Kim f174990c6e
Fix checking LoadInput for GetAttributeAtVertex for no Opt (#1149) 2018-03-17 08:45:46 -07:00
Grant 18138ff8cf Handle more complex addressing modes (#1147)
Fix HoistConstantArray pass to recognize more complex load & store patterns.

Previously it was expecting no nesting and just a simple list of GetElementPtr's that fed loads or stores. Now it can accept a tree (DAG) of GetElementPtrs that feed leaf node loads or stores.
These patterns cannot be directly derived from HLSL, however they can occur due to previous optimizations that transform the array accesses (like a partial CSE or similar).
2018-03-16 14:29:36 -07:00
Tex Riddell 81f8b8c3a2 Avoid inserting other insts before allocas in several passes.
- Improve code that creates allocas/non-allocas to keep allocas first
- Add helper functions to dxilutil
- Use name AllocaBuilder for CreateAlloca for clarity
2018-03-15 17:41:42 -07:00
Tex Riddell 6f531dedd0 Merge branch 'user/texr/unused-var-warning' into user/texr/rt-merge-rebase 2018-03-13 12:47:40 -07:00
Tex Riddell 53bb89f6d8 Fix unused local var warning when DXASSERT is off. 2018-03-13 12:44:59 -07:00
Young Kim 648b4aebd1 Merged PR 47: Remove duplicate resource usage for a function for arrays of resources
Remove duplicate resource usage for a function for arrays of resources
2018-03-13 18:13:46 +00:00
Xiang Li d66d48721f
Set default input control point count to 1. (#1135) 2018-03-13 11:06:30 -07:00
Tex Riddell 74f4fee608 HLMatrixLower: Fix out matrix param for lib func 2018-03-13 01:53:52 -07:00
Tex Riddell 5f94a3cf57 Save/restore diag printer in LoadModuleFromBitcode. 2018-03-12 23:16:31 -07:00
Tex Riddell e237f8a57e Merged PR 50: Fix attributes for ray intrinsics that can change during traversal
Fix attributes for ray intrinsics that can change during traversal
2018-03-13 03:13:03 +00:00
Tex Riddell cb5f27c080 Merge branch 'master' into user/texr/rt-merge-rebase 2018-03-12 13:11:12 -07:00
Tex Riddell 8ba7f58967 Merged PR 44: Fix CreateTransposeShuffle in HLMatrixLowerPass
Fix CreateTransposeShuffle in HLMatrixLowerPass
2018-03-12 20:10:00 +00:00
Tex Riddell 64dada19d7 Merged PR 41: Prevent GVN from upsizing loads and bitcasting i32* to i64* breaking DXIL
Prevent GVN from upsizing loads and bitcasting i32* to i64* breaking DXIL
2018-03-12 20:09:49 +00:00
Tex Riddell bb2009ac39 Merged PR 40: Skip unused resources in FindUsingFunction fixing AV
Skip unused resources in FindUsingFunction fixing AV
2018-03-12 20:09:37 +00:00
Tex Riddell 4b02d18ca2 Merged PR 39: Linker: add resources to LLVMUsed so they don't get deleted prematurely
Linker: add resources to LLVMUsed so they don't get deleted prematurely
2018-03-12 20:09:24 +00:00
Tex Riddell dcaad9e14c
Fix scalarizer for shuffle on vector produced later (#1128) 2018-03-12 12:58:48 -07:00
Tex Riddell 571ff78e00
DPF on llvm_assert. (#1115) 2018-03-12 12:55:31 -07:00
Lei Zhang 70990344ed
[spirv] Implement relaxed layout for vector types (#1092)
Based on GLSL std140/std430 layout rules, relaxed layout allows
using vector's element type's alignment as the vector types's
alignment, so that we can pack a float value and a float3 value
tightly. This is the default right now.

Also add an option, -fvk-use-glsl-layout, to turn off the relaxed
layout for vectors and use conventional GLSL std140/std430 layout
rules.
2018-03-12 10:21:54 -04:00
Young Kim 799331737d Merged PR 38: Cleanup RDAT Table, fixing resource dependency, and adding function dependency 2018-03-10 01:57:20 +00:00
Tex Riddell f8e1af0417 Merge branch 'master' into user/texr/rt-merge-rebase 2018-03-09 00:55:21 -08:00
Xiang Li 277bb0bce3
Use memcpy when cast cbuffer constant into static global. (#1125) 2018-03-08 22:34:46 -08:00
Tex Riddell 2a9e758f06 Merged PR 34: Fix matrix handling when array and other cases within function args.
Fix matrix handling when array and other cases within function args.
2018-03-09 02:13:14 +00:00
Tex Riddell fbbd1c1350 Merged PR 36: Fix StructuredBuffer GetDimensions stride
Fix StructuredBuffer GetDimensions stride
2018-03-08 08:41:58 +00:00
Young Kim 20067a37fe Merged PR 35: Merge user/kiyoung/function-feature-flag to user/texr/rt-merge-rebase
- Refactoring ShaderFlag out of DxilModule
- Have Shader Flag per function on RDAT blob
2018-03-08 01:59:39 +00:00
Tex Riddell bff194564f Merged PR 33: Fix break due to mismatched use of const in Props/Signature Map keys.
Fix break due to mismatched use of const in Props/Signature Map keys.
2018-03-06 18:18:29 +00:00
Xiang_Li (XBox) be06ec1d3a Merged PR 32: Remove unused debug info when linking.
Remove unused debug info when linking.
2018-03-06 02:25:52 +00:00
Xiang_Li (XBox) 88de36b2f5 Merged PR 31: Support select chain in TranslateHLCreateHandle.
Support select chain in TranslateHLCreateHandle.
2018-03-05 23:07:47 +00:00
Tex Riddell e3b66dc556 Merged PR 29: Fix linking to library with unresolved function declarations.
Fix linking to library with unresolved function declarations.
2018-03-01 03:50:48 +00:00
Xiang Li 3873af6750
Support addrspacecast when flatten global variable. (#1103) 2018-02-27 17:16:58 -08:00
Xiang Li 19616e53b5 Revert "Support addrspacecast when flatten global variable."
This reverts commit d74ff8a97d.
2018-02-27 10:59:48 -08:00
Xiang Li d74ff8a97d Support addrspacecast when flatten global variable. 2018-02-27 10:55:35 -08:00
Young Kim 0a098d7cbb Merged PR 28: Add RDAT blob for library targets and add its reader 2018-02-26 23:51:39 +00:00
Tex Riddell fa03d3362a Fix payload/attr/param sizes, add test, fix some metadata non-determinism 2018-02-21 19:04:09 -08:00
Tex Riddell 914c040b14 Merged PR 26: Fix intrinsic names to match spec.
Fix intrinsic names to match spec.

- PrimitiveIndex still maps to low level dx.op.primitiveID
2018-02-21 21:51:20 +00:00