Commit Graph

4102 Commits

Author SHA1 Message Date
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