Commit Graph

2557 Commits

Author SHA1 Message Date
baldurk 794065eedb Crash fix 2016-02-07 18:49:43 +01:00
baldurk db22eb64fb Implement quad overdraw display modes (not quite 100% yet) 2016-02-07 18:49:42 +01:00
baldurk d8f8a97c9e Don't do single draw via ReplayLog if we're doing it directly 2016-02-07 18:49:41 +01:00
baldurk 00e0946112 Support initing postvs for a whole pass via a per-draw callback 2016-02-07 18:49:40 +01:00
baldurk 7aca368cc7 Fix resourceformat check (was 'working' before because null != null) 2016-02-07 18:49:39 +01:00
baldurk ca6eee8b8f Remove start event ID from replaylog call.
* Any uses of this for replaying subsections of the frame are to be
  implemented under the replay driver level, as it's too onerous to
  require that the replay driver be able to replay arbitrary subsections
  or to communicate granularity up to the above layer.
2016-02-07 18:49:38 +01:00
baldurk e05614c6bf Set up drawcall previous/next/parent IDs in replay drivers 2016-02-07 18:49:37 +01:00
baldurk 459196fd21 Shift responsibility for 'whole pass' type processing to replay drivers
* Note, currently broken as the drivers don't have previous/next EIDs
  set up on their drawcalls
2016-02-07 18:49:36 +01:00
baldurk b2bbe4541a Length in vkCmdPushConstants is in byte units (but multiple of 4) 2016-02-07 18:49:35 +01:00
baldurk b3029b6ddf Changed command buffers to be handled properly as pooled objects 2016-02-07 18:49:34 +01:00
baldurk 290b695a6b Linux compile fixes 2016-02-07 18:49:33 +01:00
baldurk a3bf43c852 Tweak cell header merging in buffer viewer to merge all columns
* There's some kind of flickering/lag that goes on when you horizontally
  scroll but it's minor and I can't figure out how to fix it for now.
2016-02-07 18:49:32 +01:00
baldurk e286d34a53 Handle GLSL being passed into shader module creation function 2016-02-07 18:49:32 +01:00
baldurk 599a378d9c Display descriptors by iterating the sets and looking up reflection
* This lets disabled/empty sets be displayed more correctly
2016-02-07 18:49:31 +01:00
baldurk 183919853f Proper null checks in C# operator == 2016-02-07 18:49:30 +01:00
baldurk 0493d661b0 Don't check for wrappers since on capture wrappers aren't registered 2016-02-07 18:49:29 +01:00
baldurk 495a35d44e Don't unwrap the partial result cmd pool 2016-02-07 18:49:28 +01:00
baldurk bc10ce84ba Use semaphores to synchronise unbind/bind of sparse mappings
* For non-image mappings (image opaque and buffer) we unbind the whole
  resource then bind the initial mapping. This means two batches though
  so needs to be synchronised.
2016-02-07 18:49:27 +01:00
baldurk 78d34fe0e6 If we're not adding wrappers during capture, don't remove them either! 2016-02-07 18:49:26 +01:00
baldurk 9f4cc2880d Treat duplicate handles correctly while in replay
* For those types that I think it's valid for them to be duplicated, we
  look up if an existing wrapper is present and if so use that - and
  just use ReplaceResource.
* If it turns out some other types are duplicated, the handling can be
  added easily.
2016-02-07 18:49:25 +01:00
baldurk 0156f641dd Don't add wrappers while capturing - allows duplicate handles in capture
* If we don't add objects into the real->wrapper map, then duplicate
  objects returned from the driver are fine. We will naturally create a
  unique handle for each and we don't have to worry about clashes, as
  the application will see each unique handle and free them separately
  since it's not allowed to *rely* on duplicate handles. Then when they
  destroy the unique handles, we'll end up destroying the duplicates
  multiple times.
2016-02-07 18:49:25 +01:00
baldurk 506c38bcbb Remove use of GetWrapper while capturing 2016-02-07 18:49:24 +01:00
baldurk d64946f5f2 Update generator/module version handling to latest SPIR-V spec 2016-02-07 18:49:23 +01:00
baldurk e0bbed0b34 Pass shader specialization data to pipeline state (just data, not in UI) 2016-02-07 18:49:22 +01:00
baldurk 4b7c33d531 Fixes for vulkan for BGRA changes, add R4G4 special format 2016-02-07 18:49:21 +01:00
baldurk f8df435826 Warn don't assert on VkDeviceQueueCreateInfo having the wrong sType 2016-02-07 18:49:20 +01:00
baldurk e3375d7927 For now, disable the fake non-coherent memory type adding 2016-02-07 18:49:19 +01:00
baldurk 839801e4a6 Save image initial states by slice and by mip, not whole-mip-at-once
* Particularly using the offsets gained from GetImageSubresourceLayout
  could cause problems, so instead we pack the slices and mips into the
  buffer ourselves just using the per-subresource size.
2016-02-07 18:49:18 +01:00
baldurk ae557c5bb3 If a flush is not serialised due to not capturing, mark resource dirty 2016-02-07 18:49:17 +01:00
baldurk 52e90a08e9 Mark resource clean when record is deleted, not when resource is
* This means any resources which we keep around for the duration of the
  frame can be correctly identified as dirty or not.
2016-02-07 18:49:17 +01:00
baldurk bf950e0c00 Be very careful to release our own wrapper before the real resource
* This is because if we release the real resource first, another thread
  could allocate the same resource pointer back and get a double
  wrapper.
2016-02-07 18:49:16 +01:00
baldurk 2678548351 Handle ID for return value not being present without crashing 2016-02-07 18:49:15 +01:00
baldurk 525740303a Don't delete temp array memory 2016-02-07 18:49:14 +01:00
baldurk a864b757c4 Move drawcall timings as post 1.0 since it probably won't get done
* It needs better support for replaying subsections of the frame
2016-02-07 18:49:13 +01:00
baldurk 51a289c786 Set up json like an implicit layer 2016-02-07 18:49:12 +01:00
baldurk 71e3c8b38b Demote sparse texture TODOs to low 2016-02-07 18:49:11 +01:00
baldurk 1056b5411d Fix 32-bit compilation, assuming local modifications to vulkan.h
* When the final header is ready we'll roll it into the source directly
  rather than assuming the SDK is installed anywhere, and apply a local
  change to get type-safety on 32-bit (which only works on C++). Similar
  to the GL header's modification for a typed GLenum.
2016-02-07 18:49:10 +01:00
baldurk 9c9fa89a90 Mark texture display as done for now (pending testing) 2016-02-07 18:49:09 +01:00
baldurk f07e3b1100 Remove RESTYPE_BUFFER for vulkan 2016-02-07 18:49:09 +01:00
baldurk 7e3cd76676 Stencil texture display and picking (unsigned/signed int as well) 2016-02-07 18:49:08 +01:00
baldurk 961616428d Add texture sampling code for all types/formats 2016-02-07 18:49:07 +01:00
baldurk 3bce54bb3d Set access masks in image memory barriers as recommended by validation
* I'm not entirely convinced this validation is correct, but this is
  being conservative by adding more access bits (I ignore the message
  that complains about extra bits being set). Worst case, more access
  bits are set than necessary and the barriers are overly strict.
2016-02-07 18:49:06 +01:00
baldurk 78913345f1 Apply initial contents on first read after setting up image layouts 2016-02-07 18:49:05 +01:00
baldurk dd7e2ee568 Shader uniform block definitions between C++ and GLSL 2016-02-07 18:49:04 +01:00
baldurk a995ee66e2 Change handling of shaders and entry points so they're not aliased 2016-02-07 18:49:03 +01:00
baldurk f4b3e80654 Add casts for VS2015 compile warnings 2016-02-07 18:49:02 +01:00
baldurk 3568627b35 Allow capabilities.maxImageCount == 0 to mean no upper limit 2016-02-07 18:49:01 +01:00
baldurk 84345e1728 Make sure to unwrap surface everywhere 2016-02-07 18:49:00 +01:00
baldurk 554b942ef6 Set environment variables with new layer name 2016-02-07 18:48:59 +01:00
baldurk 46ed34b599 Implement caching of SPIR-V compiled shaders 2016-02-07 18:48:58 +01:00