| Age | Commit message (Collapse) | Author |
|
entrypoint param. (#4353)
|
|
* Fix crash on invalid entrypoint varying parameter.
* Fix test.
|
|
* implicit register binding for hlsl to non-hlsl targets
* fix regressions
only warn once with `_maybeDiagnoseMissingVulkanLayoutModifier`
remove unneeded else
* address review and change bindings
address review comments on testing to make the tests indiscriminate over order of code emitted.
Change bindings to 1:1 map to vulkan bindings
* don't set bindings 1:1 with vulkan if command line option was added
---------
Co-authored-by: Yong He <yonghe@outlook.com>
|
|
* Fix duplicate `DescriptorSet` decorations.
* Fix duplicate `Block` decoration.
|
|
* Add option to preserve shader parameter declarations in output.
* Add test.
|
|
|
|
|
|
|
|
This commit adds testing for Metal texture functions with the following
six types that the document says supported:
- float
- half
- int32_t
- uint32_t
- int16_t
- uint16_t
Co-authored-by: Yong He <yonghe@outlook.com>
|
|
* Support integer typed textures for GLSL
This commit re-enables the ability to sample from an integer typed
texture for GLSL functions while keeping it unavailable for HLSL target.
|
|
|
|
* Address glslang ordering requirments for 'derivative_group_*NV'
fixes: #4305
The solution is to emit some `layout`s after a module source is emitted.
Added to slangs gfx backend code to enable the compute shader derivative extension for testing purposes.
* address review
* enable removed test
---------
Co-authored-by: Yong He <yonghe@outlook.com>
|
|
* Error out for types not supported by texture sample functions
This commit prints errors with a new keyword, `static_assert`, when the
given texture type is not supported for the target.
* Moving the check to linkAndOptimizeIR after specialization is done
* Remove unnecessary change
* Adding test
* Remove kIROp_StaticAssert once processed
* Do not remove StaticAssert because it is needed for the next
specialization
* Remove after iteration of child is done
---------
Co-authored-by: Yong He <yonghe@outlook.com>
|
|
|
|
* Support all integer typed indices in StructuredBuffer Load/Store/[].
* Fix tests.
---------
Co-authored-by: Jay Kwak <82421531+jkwak-work@users.noreply.github.com>
|
|
* fix double semicolons
* fix another double semicolon
* wait for init data upload
* remove obsolete setData
* refactor swapchain to work on virtual back buffers
* buffer/texture use breakable device reference
* refactor input layout
* create render command encoder
* add todo
* refactor framebuffer layout
* refactor framebuffer
* refactor shader program
* translatePrimitiveType
* add more translate functions
* refactor framebuffer
* refactor render pass
* implement graphics pipeline state
* add depth stencil state
* initial render command encoder support
* comment
|
|
* SPIRV `Block` decoration fixes.
- SPIRV does not allow duplicate `Block` decorations. So we shouldn't be generating them.
- Also fixes duplication of OpName.
- SPIRV and HLSL do not allow ConstantBuffer with trailing unsized arrays. Added a check in the front-end against such code.
* Convert failing cross-compile tests to filecheck.
---------
Co-authored-by: Jay Kwak <82421531+jkwak-work@users.noreply.github.com>
|
|
message. (#4312)
|
|
|
|
|
|
|
|
* fixes: #4163
Precompute UIntSet from individual capabilities inside generator (removes intermediate form of capabilities).
note:
1. I still expand capabilities which are missing `target` and `stage` atoms.
* fix compile warning<->error with clang
* address review
preallocate the pregenerated UIntSet's
* disable incorrect warning of 'unreachable code'
The warning is wrong since, when `out` has 0 elements (does not start `for` loop), the `return` is reached.
* fix clang warnings
1. use unsigned long for the buffer serializer
2. braces around scalar init
* address review
added work around to avoid warning with `for(...) return; return;` pattern
`else if constexpr` addition instead of cascading blocks
* push fix for use of `_BitScanForward`
* cleanup
* move around assert for proper checking
* syntax error
* use SLANG_ASSERT instead of assert
* test for why SLANG_ASSERT caused CI to fail with linux-arm builds
* test if `SLANG_ASSERT` really is causing a build issue for linux-arm
|
|
|
|
* Fix build warnings and treat warnings as error
|
|
* Remove unnecessary call to __requireComputeDerivative
When SPIR-V uses operators whose name has a keyword, "Implicit", they
require calling a function "__requireComputeDerivative()".
When it uses "Explicit", the function doesn't need to be called.
|
|
* implement sampler state
* implement input layout
* implement fence object
* buffer implementation
* texture implementation
* cleanup
* add adapter enumeration
* supported formats and allocation info
* work on device and implement readBufferResource
* skeleton for transient resource heap
* initial work on command queue / buffers / encoders
* fix uploading initial buffer data
* implement buffer resource view
* string utility functions
* wip query pool implementation
* cleanup
* swapchain
* wip
* remove plain buffer view
* extend gfxGetDeviceTypeName with metal
* basic support for resource binding with compute shaders
* needed for metal bindings
* replace assert(0) with SLANG_UNIMPLEMENTED_X
|
|
|
|
|
|
|
|
|
|
Use memcpy to replace strncpy_s in SlangProfiler::SlangProfiler to fix
the error in Windows.
|
|
* Add APIs to get profile of compile time
Add serial time measurement
Add profiler to measure lots of stages in slang compilation, and it
can accumulate the time spent in each thread in multi-threads case and
finally report a serial timing info.
* Add invocation times to the profiler
* Simplify the profiler and provide a 'clear' option
Change the profiler design to only return the thread_local
profiler to user.
We create a ISlangProfiler interface to carry the thread_local
variable PerformanceProfilerImpl profiler to user.
In addition, we provide a new option in the input parameter to
control whether or not user want to clear the previous profile
data. So spGetCompileProfile() can always returns a fresh new
profiling data.
* Change to use slang container List
Stop using std::vector, instead use slang's container List.
Generate a UUID for ISlangProfiler
|
|
* Print warning when operator<< shifting too much
Closes #3944
For the given type of the left side operand to `operator<<` is not big
enough for the right side operand, print a warning that the result will
be always zero.
|
|
|
|
Add option "-disable-source-map" to disable the source map in obfuscation.
|
|
|
|
code (#4250)
|
|
|
|
|
|
* Fix a bug on default initialization of interface typed value.
* Fix.
|
|
|
|
|
|
* Handle type check cache update on extensions more gracefully.
* Correctness fix.
* Cache implcit cast overload resolution results.
* Fix.
* More optimizations.
* Cache implicit default ctor resolution.
* Disable redundancy removal.
* Fix.
* Fix test.
* Fix.
* Correctness fix.
* Fix.
* Fix,
* Fix test.
* Small tweak.
|
|
* Add options to speedup compilation.
* Fix.
* Plumb options to DCE pass.
* Revert debug change.
* Fix regressions.
* More optimizations.
* more cleanup and fixes.
* remove comment.
* Fixes.
* Another fix.
* Fix errors.
* Fix errors.
* Add comments.
|
|
When memory leak is detected, this commit will dump the information
about the memory leak. This feature is available only in Debug build
on Windows platform.
Also note that the message will not be printed on the client
applications that use slang.dll, because the printing happens as a part
of slangc.exe not slang.dll.
I found a bug that Slang::StdWriters was closing `stdout` and `stderr`
in its destructor, which prevented Crt functions to print the messages
to `stdout` and `stderr`.
|
|
* Update slang-performance-profiler.cpp
* modified: source/core/slang-performance-profiler.cpp
* reviews
---------
Co-authored-by: Jay Kwak <82421531+jkwak-work@users.noreply.github.com>
|
|
* push fix: if no sample, set to 0 for textureMS
* push fixes to hlsl [] operator + test so it will error
|
|
* fix all Clang-14 warnings
* remove a clang-14 warning fix because it is a MSVC warning...
|
|
|
|
per shader program. (#4189)
* Emit only 1 execution mode of type per entry point
Added a dictionary<SpvWord,Hash<ExecutionMode>> to ensure we don't emit multiple.
* get inst->id directly
* address review + fix test
---------
Co-authored-by: Yong He <yonghe@outlook.com>
|