Commit Graph

5819 Commits

Author SHA1 Message Date
baldurk acae04af02 Expose getLuminance for QColor 2017-07-14 17:17:54 +01:00
baldurk 0aad2e9c03 Tweak hover label a bit - remove it on leave and don't clip both sides 2017-07-14 13:09:03 +01:00
baldurk 57bdd0495b Add labels on hover and current event, and jump to event on click 2017-07-14 12:56:10 +01:00
baldurk 50ca57aaaa Add quoting necessary to build qrenderdoc in path with spaces or dashes
* The paths need to be quoted so that spaces don't expand to multiple
  arguments.
2017-07-13 19:03:40 +01:00
baldurk 9e8bb36008 Compile fix - keep headers separate so clang-format doesn't re-sort them 2017-07-13 18:45:25 +01:00
baldurk d3d1bcd136 Add work in progress timeline bar
* Has an EID scale bar along the top, and simple zoom/pan, but nothing
  else.
2017-07-13 18:44:41 +01:00
baldurk df9f72b857 Add option to ignore icon size when sizing rows in a RDTreeView 2017-07-13 13:57:33 +01:00
baldurk b254cd7ac1 Fix crash with NULL drawcall 2017-07-13 13:57:09 +01:00
baldurk 5f94f4a71b Add <QDebug> include file 2017-07-12 23:36:46 +01:00
baldurk a01b85135b Move windows-only code into #ifdef 2017-07-12 21:36:04 +01:00
Michael Rennie bb3fb53a2f GetSizedFormat fix for types that imply an internalFormat.
Previously we chose GL_RGB8, which was invalid for these types.
2017-07-12 11:51:57 -07:00
baldurk 5078d68234 Use new stretch hints mode to improve column sizing in pipeline states 2017-07-12 19:51:10 +01:00
baldurk 24e1a8fc42 Add a new 'stretchy size hint' mode for RDHeaderView
* The basic idea here is to have a reasonable middleground between
  ResizeToContents and Stretch. We want to show at *least* enough for
  the contents, but the remaining space should be shared between the
  columns according to some proportions.
* That way you don't end up with one huge column and several tiny ones
  that are just big enough but no more, but all data is still visible.
2017-07-12 19:50:29 +01:00
baldurk 1e840356a1 Change pipeline state viewers so minimum panel size is smaller
* Add scroll areas for the larger tabs and allow pipe flowchart to
  resize to its minimum size if needed.
* The idea here isn't that anyone will seriously try to use the pipe
  view at 500x200 but more that the minimum size doesn't become a
  problem while moving around windows or panels, or resizing temporarily
2017-07-12 19:44:51 +01:00
baldurk b96242b635 Return a minimum size hint for pipeline flowcharts 2017-07-12 18:26:20 +01:00
baldurk 79979b60c7 Remove contents margins from sizehint when preserving aspect ratio
* This prevents a feedback loop where the label resizes wider to make
  room for the margins, then the margins get bigger to keep the image
  centred/scaled properly, etc.
2017-07-12 18:26:05 +01:00
baldurk bcd08f77a6 Set word wrap on fixed state labels in pipeline viewers
* This allows the pipeline state viewer to have a smaller minimum size
  which is useful when resizing the whole program UI.
2017-07-12 17:29:09 +01:00
baldurk a2004f924f Set default LocalDebuggerWorkingDirectory in the right place
* Somehow vcxproj are order-specific which sounds horrible but doing
  this too early or too late doesn't get picked up.
2017-07-12 16:16:39 +01:00
baldurk 0032a11fc2 Implement global hook feature for Qt 2017-07-12 13:54:12 +01:00
baldurk bf220eed88 Make sure to serialise inject mode with capture settings JSON 2017-07-12 13:45:45 +01:00
baldurk 44b74eb813 Refactor global hooking, to bring it into the C++ OS-specific code
* This way it can be used from Qt or any other UI as well.
* The pipes are created internally and just passed as stdin to the
  renderdoccmd processes instead of being named pipes.
2017-07-12 12:41:39 +01:00
baldurk 7fdd770b15 Don't destroy events that we back into persistently recorded cmd buffers 2017-07-11 20:03:03 +01:00
baldurk dd856a1f1f Remove unused VkBufferCreateInfo structures. Refs #688
* These structs were no longer used since the memory wholeMemBuf was
  added, and they had some confusing enum usage that triggered static
  analysis warnings.
2017-07-11 20:03:03 +01:00
Michael Rennie 00d959d37d Add GL_OES_compressed_ETC1_RGB8_texture. Needed for gfxbench. 2017-07-10 10:38:55 -07:00
Tim Jones 086e661798 Wrap D3D8 vertex and index buffers 2017-07-06 14:04:55 -07:00
baldurk f8b458176a Add stub HLSL generation for editing D3D shaders that have no source 2017-07-06 16:34:48 +01:00
baldurk 575580e13b Don't try to replay vkCmdNextSubpass when doing a single-draw replay 2017-07-06 16:15:44 +01:00
baldurk 419a2ecd42 Add handling for VK_ERROR_OUT_OF_DATE_KHR returned from swapchain funcs 2017-07-06 16:15:10 +01:00
baldurk e3644c3174 Bind all compatible descriptor sets, don't bail at the first one
* When descriptor sets are invalidated and we have stale bindings around
  we cannot bind them or it will lead to invalid behaviour and crashes.
* However it's possible for set 0 to be invalid/stale and set 1 to be
  valid and required, so we can't bail out at the first invalid set. We
  keep iterating and bind all valid compatible sets.
2017-07-06 16:04:23 +01:00
baldurk 01eb50089c Make sure pipelines are used with the right subpass in a partial replay
* When we do a partial replay we truncate the render pass to only have
  one subpass, but pipelines are created for a particular subpass. So
  at creation time we create a new pipeline that points to subpass 0 so
  we can use it later together with the truncated render passes.
2017-07-06 16:03:30 +01:00
baldurk 19ecf36b13 Compile fix for linux with added void* cast 2017-07-06 12:23:15 +01:00
baldurk 3a47aa7840 Support captures where programs are created mid-frame. Refs #684
* This is far more likely when you start capturing at the start of the
  program, but it can happen any other time if you get unlucky.
* Normally we expect the preparation of initial states for programs to
  get all the data ready, but if the program is created during the frame
  capture then that's after preparation, so we need to instead fetch and
  serialise the data at the end of the frame while serialising initial
  contents.
2017-07-06 11:54:06 +01:00
baldurk 750bea339f Add support for queueing capture of a first frame in GL
* This isn't reliable in GL since context creation is such a mess, but
  we go from the first attribs-based context create to the next present.
* Should allow capturing early setup and creation before the first
  render.
2017-07-06 11:53:07 +01:00
baldurk e8c39c956a Return texture ID directly from the image viewer replay driver
* The proxy replay driver might not report an 'internal' ID that doesn't
  have a true live ID, so instead we take responsibility for reporting
  it. The proxy will still return its details when prompted.
2017-07-06 11:51:03 +01:00
baldurk 96201c4762 Fix github wiki URL that didn't end up how I thought it would. 2017-07-05 22:12:19 +01:00
baldurk 358be1a357 Search for the ISA plugins in the arch-specific folders 2017-07-05 22:06:00 +01:00
baldurk 8c794b835a Ignore the plugins folders, if present 2017-07-05 21:54:52 +01:00
baldurk e97fa159b5 Add a 'virtual' GCN ISA target when not supported to display error msg 2017-07-05 21:53:54 +01:00
baldurk e5f674635f Support 32-bit and 64-bit AMD driver DLLs for disassembly 2017-07-05 21:52:35 +01:00
baldurk a6215fa0e7 Include the GCN plugins in the build process 2017-07-05 21:51:43 +01:00
baldurk 79101c7b13 Move DXBC shader friendly naming logic into C++ side code
* This makes more sense and lets us share it between Qt and C# UIs.
2017-07-05 20:37:49 +01:00
baldurk ecf88787d7 Add code to disassemble SPIR-V, glsl and DXBC into GCN ISA.
* Requires binary plugins to function from the RGA repository. These
  will be included with distributions (nightly and stable builds) where
  possible, however D3D disassembly currently requires the AMD driver
  DLL which cannot be distributed. Placing it in the folder with the
  other files will automatically work.
2017-07-05 20:37:48 +01:00
baldurk 13bf08a99e Remove disassembly from shader reflection, request it on demand 2017-07-05 16:31:44 +01:00
baldurk bdf2a68c71 Add shader's ID and entry point to the shader reflection struct
* This allows better identification of a shader from its reflection
  bundle. The entry point was already 'optionally' in the debug info
  struct which is no longer a great location for it.
* For APIs where the entry point isn't contractual and it might not be
  listed, instead we just fall back to 'main'. This means that the UI
  or anyone fetching the info can be guaranteed that some sensible entry
  point will be listed.
* Also for the debug info, remove the 'entryFile' index and instead just
  guarantee that as much as possible the entry point will be in the
  first file in the list.
2017-07-05 16:29:26 +01:00
baldurk c2b0c2d7d8 Add more compilation settings for SPIR-V, including source language
* This e.g. fixes the generation of SPIR-V for GL style GLSL with
  uniforms that are just global not in a UBO.
2017-07-05 16:29:26 +01:00
baldurk 7d5e047e66 Fix serialisation of rdctype::str to always NULL-terminate 2017-07-05 16:29:17 +01:00
baldurk cd0856cd4c Make sure to set m_LastCmdBufferID in vkCmdWaitEvents
* Without this, it's treated as a host operation not a queue/command
  operation and isn't placed correctly in the event stream.
2017-07-05 16:29:11 +01:00
baldurk e2a624e359 Add backwards compatibility code for breakage in 494427aac4
* When Common_preElements was removed, it lost some serialised data.
  Although we don't need it anymore, we at least need to serialise the
  bool indicating no data came from memory so that the serialisation
  lines up.
2017-07-05 16:29:10 +01:00
baldurk 9ffb37a092 Check for data pointer with HasDataPtr. Found by @EBatut-ALG. Refs #684 2017-07-05 16:29:10 +01:00
Cody Northrop ac38e7cb63 os: Add helper to find host temp directory 2017-07-05 16:29:10 +01:00