Commit Graph

3539 Commits

Author SHA1 Message Date
baldurk 6545625874 [Coverity] Fix a bunch of partially-initialised structure warnings 2016-07-20 16:45:06 +02:00
baldurk 240bdc3156 [Coverity] Catch any C++ exceptions from cmdline and just bail instantly 2016-07-20 16:15:40 +02:00
baldurk e81895b060 [Coverity] Remove use of rand() now SetFrameEvent takes 'bool force'
* I honestly can't figure out how to tell Coverity that rand() use isn't
  a security flaw, but it's on longer needed so...
2016-07-20 16:01:48 +02:00
baldurk b3e192bdb6 Always perform barrier for depth image even if it's not pipeline-bound 2016-07-20 15:24:37 +02:00
baldurk 31fb9dbaec Create fake backbuffer in the same format always - RGBA8_SRGB 2016-07-20 15:24:17 +02:00
baldurk aea036c34c Implement multi-draw indirect support for vulkan 2016-07-20 14:09:56 +02:00
baldurk e04dc8897f Fix VS2015 warning about variable shadowing 2016-07-19 21:00:58 +02:00
baldurk bde21b0c73 Render custom shaders at the selected mip level. Refs #302 2016-07-19 20:40:11 +02:00
baldurk 81c8f1f77e Prefix GL uniforms with 'uniform'. Refs #302 2016-07-19 19:19:57 +02:00
baldurk a923ea615d If we're doing a range partial replay, just skip work in vkExecCommands 2016-07-19 18:44:03 +02:00
baldurk eece61fe0b Implement proper accurate sRGB conversion, instead of pow(2.2) approx 2016-07-19 17:38:58 +02:00
baldurk 36700ec4ab Partially replay vkCmdExecuteCommands, same as vkQueueSubmit. Refs #204 2016-07-19 17:38:35 +02:00
baldurk cc04fa33a9 Begin handling partial replay of both primary and secondary cmd buffers 2016-07-19 12:41:21 +02:00
baldurk 24b644b8e3 Warning fix - don't reuse 'count' variable which could be confusing 2016-07-18 19:39:38 +02:00
baldurk 8b8663531a Switch text pipeline depending on backbuffer format 2016-07-18 19:19:23 +02:00
baldurk 5a64a78d2a Add multiple-frame capture, grabbing N successive frames to captures
* In-application API is bumped to 1.1.0 as a new function pointer is
  added to the end of the structure.
* This comes with some caveats - capturing a frame is fairly heavy
  weight, so capturing a frame might throw off timing-related bugs you
  are trying to capture in subsequent frames. If you know your bug is
  every other frame though, capturing two can be a quick way to ensure
  you get it.
2016-07-18 18:51:36 +02:00
baldurk 1e10f34e1d Include cmake with linux dependencies 2016-07-18 18:18:10 +02:00
baldurk 0e43b3916e Fake only supporting a single queue family type (the most capable one) 2016-07-18 18:17:16 +02:00
baldurk 7ab314d1a6 Add explicit casts int -> uint32_t for array/mip 2016-07-15 14:45:25 +02:00
baldurk c59ce564cc Fetch compute descriptor sets properly for vulkan 2016-07-15 14:23:29 +02:00
baldurk 9cb37bfb4f Add to HORRIBLE UGLY HACKY CODE to make sure barrier pips have outlines 2016-07-15 14:17:45 +02:00
baldurk 949f2df9f4 Add more info to assert 2016-07-15 14:12:42 +02:00
baldurk f00a0a8a5e Keep image initial states as buffers in CPU memory, copy from there
* This is potentially slightly less optimal as it means the initial
  states aren't in GPU memory for a faster copy, but it means we're much
  less likely to hit OOM due to way more GPU allocs, and it's still
  pretty fast.
* Further optimisation is possible by reducing the number of images that
  actually either need initial states at all (detect when images are
  first used to clear via a renderpass), or by detecting images that are
  frame invariant and we only have initial states for immutable contents
  and avoid copying them more than once.
2016-07-15 13:26:42 +02:00
baldurk 48cd7143d7 Track descriptor sets per-cmd-buffer while reading
* This lets the usage actually have the right descriptor sets to check
  against.
* It was lost as a result of a bad fix after copy-pasting removed the
  previous read-time tracking.
2016-07-15 13:24:33 +02:00
baldurk 3be0d6d1de Fix mistaken memory leak tidy up
* Sort of confused false positive - some pipeline SPIR-V blobs were
  leaking but it was because they weren't being cached when they should
  have, not because saving the shader cache doesn't destroy its blobs.
2016-07-15 12:39:42 +02:00
baldurk f353d852f9 Don't hook into nvidia's opencl driver, it uses wglGetProcAddress 2016-07-15 00:11:46 +02:00
baldurk 80bdfe6058 Fix errors and leaks found by valgrind on linux replay host
* These are some leaks, some mismatched new/deletes and some uninit'd
  values. Mostly the leaks are what we care about so that the replay
  host can be kept alive for a long time rather than needing to be
  constantly restarted.
* Also added a valgrind suppression file to suppress some of the false
  positives I ran into while testing.
2016-07-14 20:37:32 +02:00
baldurk a7eca41a81 Fix 32-bit compile error 2016-07-14 20:32:48 +02:00
baldurk 95e00d58bf Add SIGINT signal handler on linux to cleanly shutdown replay host 2016-07-13 17:55:47 +02:00
baldurk 0c55e9374c For platforms printing to stdout/stderr, skip debug msgs & long prefix 2016-07-13 17:55:21 +02:00
baldurk 13a6c98143 Handle duplicate semaphores (mesa returns all handles as 0x1 atm) 2016-07-13 17:07:16 +02:00
baldurk edf553137c Create all proxy depth textures as depth-bindable and typeless 2016-07-13 16:49:30 +02:00
baldurk a7dc5f207f Size readback buffer for initial states based on what we need
* No need to base readback buffer on image memory requirements which
  could be packed tighter than our requirements for readback (e.g. depth
  and stencil combined formats)
2016-07-13 16:49:10 +02:00
baldurk bf707845d1 Fix readback copying of depth-stencil images 2016-07-13 16:46:50 +02:00
baldurk d4e78f785c Fix stencil pixel picking - it comes back as uint32, not float 2016-07-13 15:53:15 +02:00
baldurk ee63587813 Rename IsDepthStencilFormat to IsDepthOrStencilFormat 2016-07-13 15:53:01 +02:00
baldurk 504b18ab3f D32S8 type formats are 8 bytes per pixel, not 5. 2016-07-13 15:52:19 +02:00
baldurk 28c6105215 On posix systems, set SO_REUSEADDR 2016-07-13 13:54:25 +02:00
baldurk d5fd26f267 Make sure the 0 VAO gets properly frame referenced 2016-07-13 10:35:59 +02:00
baldurk 23665b6e05 Don't draw an indexed mesh if there is no index buffer available to bind 2016-07-13 00:40:22 +02:00
baldurk 532cdcb7a1 Compile fix for appveyor 2016-07-12 21:55:52 +02:00
baldurk 61d8060630 Fix QRenderDoc to new replay API call 2016-07-12 19:54:04 +02:00
baldurk 99c0177cd9 Remove unused GetUsername() function 2016-07-12 19:39:41 +02:00
baldurk 2b5e37b442 Make handling of mips more consistent around locked textures. Refs #292 2016-07-12 19:22:17 +02:00
baldurk 2a68153def Make sure resource context menu items are large enough 2016-07-12 19:00:37 +02:00
baldurk 123476fd30 Allow fetching view params (bound mip, etc) for copy/compute. Refs #292 2016-07-12 18:48:03 +02:00
baldurk 53d739c659 Add fallback if miplevel doesn't have a selected value 2016-07-12 18:41:51 +02:00
baldurk 80b61b2e37 Fix picked pixel co-ordinates as well as hover co-ords. Refs #300 2016-07-12 18:39:10 +02:00
baldurk 5c53e623df Add win32-specific commands (crash handle, upgrade, global hook) 2016-07-12 17:39:24 +02:00
baldurk 90f6a9da20 Remove old code 2016-07-12 17:39:24 +02:00