baldurk
f0c6786ade
No need for Serialise_CreateCommandList anymore
...
* This removes use of D3DLock which is a super-temporary ugly hack to
avoid a deadlock in some cases
2016-09-23 15:59:48 +02:00
baldurk
6bb6d7da57
Use the right number to resize array, handling SingleRT mode
2016-09-23 15:58:34 +02:00
baldurk
d104a887f1
Fix calls that were unwrapping an unwrapped list
2016-09-23 15:18:33 +02:00
baldurk
e06c08d6bf
Temporarily add a hack to skip serialising multisampled init states
2016-09-23 15:08:00 +02:00
baldurk
43a2568f24
Double check whether invoke is required for SetVariables()
2016-09-23 14:08:43 +02:00
baldurk
dbe82f31e6
Bring across FillCBufferVariables from D3D11
...
* These implementations are identical and really only depend on DXBC -
they should be shared.
2016-09-23 14:08:26 +02:00
baldurk
aa7b5558af
Allow GetBufferData from readback and upload heap buffers
2016-09-23 14:05:27 +02:00
baldurk
d0fe1fb56f
Implement GetBufferData() for D3D12
2016-09-23 13:28:54 +02:00
baldurk
e12ebb67a3
Make IDX mesh view column a little wider to account for large indices
2016-09-23 13:28:34 +02:00
baldurk
004a3a1cc1
Make sure to apply barriers while executing - wrong state check
2016-09-23 13:14:05 +02:00
baldurk
131d3cedd2
Don't warn, silently drop unknown/undefined signature elements
2016-09-23 13:13:50 +02:00
baldurk
62a9052cdc
Mute some more debug messages that are more trouble than they're worth
...
* The descriptor ones show up regularly in MS's MiniEngine sample
project, so it hides possible real problems.
2016-09-23 13:04:33 +02:00
baldurk
ed6b1a738c
Don't set a 0 structure byte size for element size (unstructured buffer)
2016-09-23 13:03:56 +02:00
baldurk
3d9a32d4e0
Autosize the compute shader row, to account for the debug bit wrapping
2016-09-23 13:03:45 +02:00
baldurk
24bc741d8c
Root constants are always 'filled'
2016-09-23 12:09:20 +02:00
baldurk
05eb9d7efd
Create pipeline state from blank slate, not over the top of previous
2016-09-23 12:07:30 +02:00
baldurk
a1ff033d82
Although it overlaps, use the right union's members to lookup
2016-09-23 12:07:16 +02:00
baldurk
6810ec8e50
Fix wrong indexing building reflection data
2016-09-23 12:06:58 +02:00
baldurk
06e6677616
Divide up register spaces by shader stage (namespacing same as DX11)
2016-09-23 11:41:16 +02:00
baldurk
6fdc883388
Make sure to add a note if a resource is not visible
2016-09-22 17:52:25 +02:00
baldurk
f883ea0648
Apply descriptor offset from table binding
2016-09-22 17:51:40 +02:00
baldurk
acb5e5ecd8
Fix crash due to unallocated compute descriptor
2016-09-22 17:09:25 +02:00
baldurk
5951ed723b
Pass resource state data per-resource through for D3D12
2016-09-22 17:05:28 +02:00
baldurk
db3181e7bb
Implement D3D12 pipeline state, with shader resources
2016-09-22 16:55:41 +02:00
baldurk
fa6bac0c49
Fill out all the CommonPipelineState functions for D3D12
2016-09-22 15:22:13 +02:00
baldurk
b9b419c86a
Process root signature elements into pipeline state
2016-09-22 12:05:47 +02:00
baldurk
2e8b758fef
Don't create a full empty array of viewports/scissors, just those set
2016-09-22 12:05:47 +02:00
baldurk
e0c183c2df
Compress string representations of a few common enums for display
2016-09-22 12:05:47 +02:00
baldurk
0f660e3ec2
Create and fill out D3D12 pipeline state, without shader resources.
...
* We make shaders into fake resources with IDs, so they can be
identified individually (for replacement, fetching reflection data,
and things like that). This is a little but ugly but worth it for the
simplicity it will provide everywhere else.
2016-09-22 12:05:47 +02:00
baldurk
d40b87aed0
Rejig how root signature data is organised in pipeline state
2016-09-22 12:05:47 +02:00
baldurk
dbb0e4702e
Create DXBC reflection data for shaders in pipelines
2016-09-22 12:05:47 +02:00
baldurk
8b1a26287d
Update D3D12 pipeline state to roughly match D3D12 state
2016-09-22 12:05:47 +02:00
baldurk
af9017af0a
Add D3D12 pipeline state (state and viewer duplicated from D3D11)
2016-09-22 12:05:47 +02:00
baldurk
946194ea20
Fix wrong output formatting when RenderTexture downcasts to RGBA8
...
* We were using the F32 pipeline (wrong! output is RGBA8) and setting
rawoutput (which would ignore things like black/white point).
2016-09-22 11:34:06 +02:00
baldurk
ae9f80ab98
Fix calculation of needed UBO size for SPIR-V reflection
2016-09-21 22:36:43 +02:00
baldurk
20ecde678a
Add more informative error for processes dying in startup. Refs #358
2016-09-21 22:36:43 +02:00
Baldur Karlsson
c43bbe05b8
Merge pull request #371 from michaelrgb/master
...
D3D11 RDCERR assumes size is 16byte aligned, as buffers are created so.
2016-09-21 15:55:28 +02:00
Michael Rennie
57b5309a97
D3D11 RDCERR assumes size is 16byte aligned, as buffers are created so.
...
Fixes crash in Mesh Viewer.
2016-09-21 14:03:25 +01:00
baldurk
ab77e74adb
Add some bullet-proofing and better messages for GL errors. Closes #367
...
* While it's not feasible to completely protect against invalid use of
APIs (or at least, it would be outside the scope of the project), we
can at least add some friendlier/more clear messages to the asserts we
already have, and add some simple NULL checks.
* This won't cover everything but at least it's better than nothing and
might give a better idea of what the problem is.
2016-09-20 13:21:09 +02:00
baldurk
ff62dbaa72
During replay, make sure calls to exported GL functions work. Refs #366
...
* These functions are intended only for hooking via LD_PRELOAD, but they
will also be picked up by any replay application calling into GL. We
need to make sure then that the real function pointer is fetched in
time to be able to call it.
2016-09-20 13:21:09 +02:00
baldurk
e3cf86fba2
Keep modified qrenderdoc arguments around until end of execution
2016-09-20 13:21:09 +02:00
baldurk
953ebe0389
Avoid __builtin_cpu_supports to workaround gcc bug. Refs #366
...
* Upstream stb_image.h uses __builtin_cpu_supports to detect if SSE2 is
available, but GCC versions from at least 5.4 and up to apparently
6.1.1 on Fedora 24 then give an error about a missing hidden symbol
__cpu_model when the resulting code is compiled into a DSO.
* Avoiding this by just assuming x64 gives SSE2 will fix 99% of cases,
and it's not a big loss for the tiny minority with SSE2 on x86 to miss
out. Thanks to @Anteru for this suggested fix!
2016-09-20 13:21:09 +02:00
baldurk
45551e58cc
Implement pixel picking on D3D12
2016-09-19 18:31:28 +02:00
baldurk
ece0725d8e
Fix display of mips with D3D12 texture display hack
2016-09-19 18:31:28 +02:00
baldurk
20b6c86119
Ensure barriers are recorded into the right command list for application
2016-09-19 18:31:27 +02:00
baldurk
759b75da8b
Use cached vector
2016-09-19 18:31:26 +02:00
baldurk
cd40051ac7
Add serialising of DiscardResource calls
2016-09-19 18:31:26 +02:00
baldurk
89e8743e08
Handle stencil ref and blend factor commands for D3D12
2016-09-19 18:31:25 +02:00
baldurk
fa2be586cc
Escape & in the text of drawcall nodes in event browser
...
* Otherwise it becomes a shortcut sequence for some bizarre reason
2016-09-19 18:31:24 +02:00
baldurk
39b0804cdb
Add a single-flush-validate flush after each initial state application
2016-09-19 18:31:23 +02:00