Commit Graph

3554 Commits

Author SHA1 Message Date
baldurk d7bec406db Fix hidden variable warning 2016-07-20 20:28:56 +02:00
baldurk 7f2d86b31d [Coverity] Fix some more uninitialised values/members 2016-07-20 18:42:12 +02:00
baldurk fce07e9a8f [Coverity] Check return value on GetData 2016-07-20 18:42:11 +02:00
baldurk 331bd3fc69 [Coverity] Add bounds checking to #line processing in disassembly 2016-07-20 18:42:10 +02:00
baldurk e8e1b34d26 [Coverity] Remove some dodgy code to iterate shader stages 2016-07-20 18:42:10 +02:00
baldurk 0f6bc31b2c [Coverity] Only pass arrays to *TexParameter* functions 2016-07-20 18:42:08 +02:00
baldurk 2e04fdaf3e [Coverity] Cast wchar_t up to uint32_t so processing is consistent
* On windows where it's 2-bytes, coverity was complaining that it can't
  match some of the ifs (not unreasonably, without the bigger picture)
2016-07-20 18:42:07 +02:00
baldurk ab22b05021 [Coverity] Match up array delete to array new 2016-07-20 18:42:07 +02:00
baldurk 95b7642612 [Coverity] Fix mis-matched enum comparisons 2016-07-20 18:42:06 +02:00
baldurk b1d917b52b [Coverity] Fix some enum-enum casting, by going via int. 2016-07-20 18:42:05 +02:00
baldurk 95b18e25f5 [Coverity] Annotate or fix some error-plus-fall-through switch defaults 2016-07-20 18:42:05 +02:00
baldurk e016a45ba8 [Coverity] Remove unneeded if check before exit 2016-07-20 18:42:00 +02:00
baldurk 49dc420e9b [Coverity] Remove float * parameter for cbuffer data, change to void * 2016-07-20 18:41:46 +02:00
baldurk 7638684146 [Coverity] Fix some NULL dereferences that should be checked 2016-07-20 17:18:14 +02:00
baldurk a3f61d0680 [Coverity] Add paranoia protection around left-shift in double printing 2016-07-20 16:58:52 +02:00
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