baldurk
8a394019fd
Fix installer typos
v1.35
2024-09-27 11:57:42 +01:00
baldurk
a342fcbe30
Add dxcompiler.dll to installer
2024-09-27 10:46:25 +01:00
James Sumihiro
aaf64f1edf
Fix uninitialized reftype during image state merge
...
The reftype of a merged subresource state is now initialized with the reftype of the original subresource state
This resolves an issue that could occur if image states in a secondary command buffer were merged into a primary for the first time, where the resulting merged image state would have an uninitialized reftype
2024-09-26 10:18:48 +01:00
baldurk
f0389a6ccc
Fix crash if opening D3D11 cbuffer view with no shader bound
2024-09-24 14:14:13 +01:00
Jake Turner
11e8039622
DXIL Debugger find the entry point in GetLineInfo
...
Get entry point from meta data if the entry point is empty
2024-09-24 11:06:00 +01:00
baldurk
8b23157086
Check extension/version capabilities for sampler descriptors too on GLES
2024-09-23 14:04:47 +01:00
baldurk
ce6b999995
Fix typo in warning message
2024-09-23 14:04:46 +01:00
Jake Turner
66a43b3d45
Moved var_dispatch_helpers.h to replay/common folder
...
To enable sharing ShaderVariable helpers for the SPIRV and DXIL Shader Debuggers
2024-09-20 17:44:41 +01:00
Jake Turner
982f464eee
Do not call end_section when a shader debug pixel comparison test fails
2024-09-20 17:44:25 +01:00
baldurk
5a9c707bef
Drop use of dxil.dll entirely, prefer loading from plugin
...
* We already hash any unhashed containers so we don't need dxil.dll for anything
2024-09-20 14:18:09 +01:00
baldurk
8b096de227
Check for feature availability when fetching GL descriptors
2024-09-20 13:35:43 +01:00
baldurk
6388289921
Fix crash if cbuffer creation fails
2024-09-20 13:30:33 +01:00
baldurk
0bf89f95c0
Reset compute state when CB is reset
2024-09-20 13:30:33 +01:00
baldurk
a882efef66
Rename RT manager to be less of a mouthful
2024-09-20 13:30:33 +01:00
baldurk
40d0b8088c
Properly wait on jobs for setting stack size
2024-09-20 13:30:32 +01:00
baldurk
70cadc8f81
Don't rely on device sharing when not singleton device
2024-09-20 13:30:32 +01:00
baldurk
0cea7aae41
Add warning to users when vkconfig is detected
...
* This causes quite a few crashes on startup during Vulkan initialisation.
2024-09-20 13:30:32 +01:00
baldurk
c0bb0f93bb
Don't assert if job system is synced when not initialised
2024-09-20 13:30:32 +01:00
Jake Turner
9b1332077a
DXIL Disassembly: Include GlobalVar in SSA Id generation
...
During SettleIDs() check that all instruction arguments that require an SSA Id have one set
Moved DXILDebug::Id, INVALID_ID, DXIL::GetSSAId() out of DXIL Debugger
2024-09-20 11:09:05 +01:00
Jake Turner
d46b29a916
Added uint32_t ssaID to DXIL::GlobalVar
...
Changed GlobalVar::align from uint64_t -> uint32_t to make space for the new member
2024-09-20 11:07:42 +01:00
Jake Turner
e22bf99392
DXIL RD Disassembly demangle global variable names
2024-09-20 11:07:42 +01:00
Cam Mannett
6dd3faa2a1
Correct compressed texture copy sizing asserts
...
Reported in #3432
wedw
Change-Id: If74a96bbb5b0c7561e4bef4bca3cb6e9be97e7da
2024-09-20 10:57:33 +01:00
Jake Turner
2b7f1a8185
DXIL Add Unknown to FunctionFamily
...
Make it clear when family has not been calculated
2024-09-19 11:25:44 +01:00
Jake Turner
eb01d2dead
DXIL Debugger find the entry point in GetLineInfo
2024-09-19 11:25:39 +01:00
Jake Turner
df80c1ebcb
DXIL Debugging improved tracking of local source variables
...
Use DXIL::DILocalVariable* as the unique key
2024-09-19 10:39:53 +01:00
Jake Turner
e2271c2d3f
DXIL Debugger Source Variable Scope handling changes
...
Include DILexicalBlock scopes
Fixes to the search for the scope based on instruction index
Handle the case of scopes which have no mappings
Update parent scope min, max instruction
Handle scope min, max instruction tracking in AddScopedDebugData
Only update activeInstructionIndex for instructions with valid DebugLoc data
2024-09-18 17:15:11 +01:00
Jake Turner
42a1b4e641
For Test D3D12_Sharing validate the D3D12 Drawcall results
...
In addition to the Copy results
2024-09-18 12:45:55 +01:00
Jake Turner
33fb099a37
D3D12GraphicsTest print shader compile error message correctly
...
Error string is not NULL terminated, use GetBufferSize() to determine how many characters to print
2024-09-18 12:32:45 +01:00
Jake Turner
53e73a1eda
DXIL Debugger support for Source Variables
...
Using Dwarf debug metadata and llvm.dbg.declare, llvm.dbg.value calls
2024-09-18 11:34:56 +01:00
Cam Mannett
031c4955e9
Check command buffer callback queue before VkDevice is destroyed
...
We only check for signaled events on each queue submit, so the last submission before exit will never be checked. This change makes sure we release for completed submissions just before the device is destroyed (typically target application exit). In this case the callbacks are not called.
2024-09-18 11:06:58 +01:00
Jake Turner
0f8ad0d1fe
Conditionally test SM 6.0, 6.6 in D3D12_Shader_Debug_Zoo
...
Added SM 5.0 to the basic compute shader debug test
2024-09-16 09:36:37 +01:00
Jake Turner
97c4899d66
DXIL Debugger BeginDebug
2024-09-13 16:40:17 +01:00
Jake Turner
14d0fdb964
DXIL Debugger methods
...
void CalcActiveMask(rdcarray<bool> &activeMask);
void ParseDbgOpDeclare(const DXIL::Instruction &inst, uint32_t instructionIndex);
void ParseDbgOpValue(const DXIL::Instruction &inst, uint32_t instructionIndex);
size_t AddScopedDebugData(const DXIL::Metadata *scopeMD, uint32_t instructionIndex);
size_t FindScopedDebugDataIndex(const DXIL::Metadata *md) const;
size_t Debugger::FindScopedDebugDataIndex(const uint32_t instructionIndex) const;
void AddDebugType(const DXIL::Metadata *typeMD);
2024-09-13 16:38:53 +01:00
Jake Turner
5f3e864795
DXIL Debugger ThreadState::ExecuteInstruction
2024-09-13 16:33:13 +01:00
Jake Turner
b528119494
DXIL Debugger ThreadState methods
...
ThreadState(uint32_t workgroupIndex, Debugger &debugger, const GlobalState &globalState);
~ThreadState();
void EnterFunction(const DXIL::Function *function, const rdcarray<DXIL::Value *> &args);
void EnterEntryPoint(const DXIL::Function *function, ShaderDebugState *state);
bool Finished() const;
MarkResourceAccess(const rdcstr &name, const DXIL::ResourceReference *resRef);
void SetResult(const Id &id, ShaderVariable &result, DXIL::Operation op, DXIL::DXOp dxOpCode,
ShaderEvents flags);
bool GetShaderVariable(const DXIL::Value *dxilValue, DXIL::Operation op, DXIL::DXOp dxOpCode,
ShaderVariable &var, bool flushDenormInput = true) const;
bool GetVariable(const Id &id, DXIL::Operation opCode, DXIL::DXOp dxOpCode,
ShaderVariable &var) const;
void ProcessScopeChange(const rdcarray<Id> &oldLive, const rdcarray<Id> &newLive);
rdcstr GetArgumentName(uint32_t i) const;
Id GetArgumentId(uint32_t i) const;
void PerformGPUResourceOp(const rdcarray<ThreadState> &workgroups, DXIL::Operation opCode,
DXIL::DXOp dxOpCode, const DXIL::ResourceReference *resRef,
DebugAPIWrapper *apiWrapper, const DXIL::Instruction &inst,
ShaderVariable &result);
void Sub(const ShaderVariable &a, const ShaderVariable &b, ShaderValue &ret) const;
ShaderValue DDX(bool fine, DXIL::Operation opCode, DXIL::DXOp dxOpCode,
const rdcarray<ThreadState> &quad, const Id &id) const;
ShaderValue DDY(bool fine, DXIL::Operation opCode, DXIL::DXOp dxOpCode,
const rdcarray<ThreadState> &quad, const Id &id) const;
ExecuteInstruction() is just a stub
And Debugger methods
const rdcarray<Id> &GetLiveGlobals();
const DXIL::Program &GetProgram() const;
const FunctionInfo *GetFunctionInfo(const DXIL::Function *function) const;
2024-09-13 16:30:16 +01:00
Jake Turner
853aee353c
DXIL Debugger internal helper methods
...
DXILDebug::Id GetSSAId(DXIL::Value *value);
bool OperationFlushing(const Operation op, DXOp dxOpCode);
ShaderEvents AssignValue(ShaderVariable &result, const ShaderVariable &src, bool flushDenorm);
uint8_t GetElementByteSize(VarType type);
DXBC::ResourceRetType ConvertComponentTypeToResourceRetType(const ComponentType compType);
DXBCBytecode::ResourceDimension ConvertResourceKindToResourceDimension(const ResourceKind kind);
DXBCBytecode::SamplerMode ConvertSamplerKindToSamplerMode(const SamplerKind kind);
VarType ConvertDXILTypeToVarType(const Type *type);
void TypedUAVStore(DXILDebug::GlobalState::ViewFmt &fmt, byte *d, const ShaderValue &value);
ShaderValue TypedUAVLoad(DXILDebug::GlobalState::ViewFmt &fmt, const byte *d);
void FillViewFmt(VarType type, DXILDebug::GlobalState::ViewFmt &fmt);
2024-09-13 16:06:22 +01:00
Jake Turner
ef6dea5397
DXIL DebugAPIWrapper Interface
2024-09-13 15:56:24 +01:00
Jake Turner
82005c8fee
DXIL Debugger support code in D3D12_ShaderDebug.cpp
...
Code is effectively disabled because DXIL GetDebugStatus() returns "Debugging DXIL is not supported"
Includes minimum required helper structs/methods in DXIL Debugger
2024-09-13 15:31:36 +01:00
Jake Turner
d1f69b5c72
DXIL Debugging D3D12APIWrapper
...
Includes minimum required helper structs/methods in DXILDebug
2024-09-13 15:03:31 +01:00
Jake Turner
772be86ec4
DXIL Source File and Line Debug Data
2024-09-13 14:46:48 +01:00
Jake Turner
f8ddc1720a
Added prototype of DXIL Source Variable Debug Data
2024-09-13 14:43:04 +01:00
Jake Turner
881e5e8e03
Added DoStringise() for DXIL::DW_OP
2024-09-13 14:40:28 +01:00
baldurk
eed31e2a09
Fix compute shader handling of implicitly-set unspecified root signature
...
* Previous commit 304e636 fixed this for most cases but was incorrect for
compute PSOs.
2024-09-13 13:22:04 +01:00
baldurk
51baf8a6af
Add test of implicit compute shader root signature
2024-09-13 13:22:03 +01:00
baldurk
457e91f194
Make sure root signatures *precisely* patch between HLSL and code
...
* Also don't finish with the backbuffer too early and re-bind VB after execute
indirect.
2024-09-13 13:22:03 +01:00
baldurk
f689b23024
Don't run D3D12 singleton device test if we're using new device creation
2024-09-13 13:22:03 +01:00
Jake Turner
1cc0fd0323
D3D12 Shader Debug preparation for DXIL Pixel Shader Debugging
...
Move pixel shader debugging code which is shared by DXBC/DXIL to outside of if DXBC scope
2024-09-10 14:59:04 +01:00
Jake Turner
2dad8233a3
Added more DXIL Debug Info helpers, made debug info helpers const
...
rdcstr GetDebugScopeFilePath(const DIBase *d) const;
uint64_t GetDebugScopeLine(const DIBase *d) const;
const Metadata *GetDebugScopeParent(const DIBase *d) const;
2024-09-10 14:59:04 +01:00
Jake Turner
7b2754a978
Santisie the shader source filenames in DXIL BuildReflection
...
Reset Files and m_CompileFlags to avoid accumulation with repeated calls to BuildReflection
Set "preferSourceDebug" to "1" if the DXIL has source file data
2024-09-10 14:59:04 +01:00
Jake Turner
f730eb6659
Add helper: rdcstr standardise_directory_separator(const rdcstr &path);
...
Replaces all directory separators combinations with '/'
i.e.
'\' -> '/'
'//' -> '/'
2024-09-10 14:59:03 +01:00