Commit Graph

9007 Commits

Author SHA1 Message Date
baldurk 05f044016b Don't call QObject::connect for a NULL model 2019-05-22 11:33:09 +01:00
baldurk 943a790319 Fix a crash when resizing a header view with all sections hidden 2019-05-22 10:53:52 +01:00
baldurk 775fa9b635 Disconnect item model before deleting RDTreeWidget/RDTreeView
* This avoids odd races where some events might be fired mid-destruction and
  encounter the item model in an undefined state.
2019-05-21 13:58:38 +01:00
baldurk c83a087400 Don't pass negative firstMip/firstSlice
* These can be -1 to indicate that all mips/slices are available - so pass 0 in
  that case.
2019-05-21 13:29:43 +01:00
baldurk 8ab8f42daf Add GGP files to VS project, fix compilation with removal of 'using std' 2019-05-21 12:11:00 +01:00
baldurk 622291fde9 Set up to let demos project filter list of available tests
* This is primarily for the benefit of GL/VK where we need to feature-detect for
  some extensions or functionality that requires selecting a device, e.g. D3D12
  can be more easily detected with a quick check.
* We'll run this once and cache the results when running tests from python so we
  can do a better job of filtering out tests that the current machine doesn't
  support.
2019-05-20 16:23:09 +01:00
baldurk 419fa93ebf Implement GL_ARB_ES3_2_compatibility. Closes #146 2019-05-20 15:01:52 +01:00
baldurk 59ad2ebfa2 Clear stream-out state when clearing pipeline state 2019-05-20 14:16:43 +01:00
baldurk 06feec392d Use pipeline base mip/slice binding for texture thumbnails. Closes #1327 2019-05-20 13:13:47 +01:00
baldurk 420379c50f Update glslang to c11e3156 (release 7.11.3214) 2019-05-20 12:40:56 +01:00
baldurk 8aa515a47a Make drivers m_Events a direct lookup
* Rather than doing an expensive iteration for looking up m_Events, just index
  by eventId which will be very dense.
2019-05-20 12:24:41 +01:00
baldurk 2397233e8c Don't wrap counter queries on D3D11, avoid expensive wasteful wrapping 2019-05-20 12:19:59 +01:00
baldurk c403f5120d Fix release build compilation 2019-05-17 18:24:25 +01:00
baldurk 88204abc82 When partially replaying a cmd buffer, rebind pipeline state correctly
* Even if we're not in a renderpass we still need to bind the graphics pipeline
  state
2019-05-17 17:13:48 +01:00
baldurk 3a89a56cc3 Revert accidentally committed vulkan validation layers 2019-05-17 16:47:22 +01:00
baldurk 7206a0cd25 Removing 'use std::vector' 2019-05-17 16:32:56 +01:00
baldurk 725c207ec8 Remove 'using std::list' 2019-05-17 16:32:56 +01:00
baldurk e48065c96b Replace use of std::pair with rdcpair wherever possible
* Only remaining uses in our code is when we're interacting with std::map where
  it uses std::pair internally
2019-05-17 16:32:56 +01:00
baldurk 462772af91 Remove 'using std::set' 2019-05-17 16:32:56 +01:00
baldurk a965a3a703 Remove 'using std::string'
* This will make it easier to replace std::string with rdcstr in future
2019-05-17 16:32:56 +01:00
baldurk 6d47b35cd9 Change GL_Entry_Points test to use more generally available functions 2019-05-17 16:32:55 +01:00
baldurk ff24c2251a Account for differing reflection of global uniforms on GL
* The reflection might only return the actual used values, but it might return
  more so ensure we have handling for that.
2019-05-17 16:32:55 +01:00
baldurk 63728a425f Add newly-created tests to CMakeLists.txt 2019-05-17 16:32:55 +01:00
baldurk 4aa8e1ebf3 Be more clear in naming which chunks are internal book-keeping 2019-05-17 16:32:55 +01:00
baldurk 8edc01c928 Show the object (whether a sampler or the texture) in GL's sampler state 2019-05-17 16:32:55 +01:00
baldurk 51c50e0da3 Localise addressing mode state display for GL
* On GL addressing modes are called wrap modes, and the wrap value is then known
  as repeat. If we don't 'localise' this then it can be confusing to show that
  it is "Wrap".
2019-05-17 16:32:55 +01:00
baldurk 96cc08b960 Rename 'show disabled' button to 'show unused' as it is clearer
* Bindings that are unused aren't disabled - they may in fact be explicitly
  enabled - but they are unused by the pipeline which is why they're hidden.
2019-05-17 16:32:55 +01:00
baldurk 06b91f3d57 Update quick start image of timeline bar & remove mention of pip colours 2019-05-17 16:32:55 +01:00
baldurk 8cae484132 Handle all cmake release build types properly 2019-05-17 16:32:55 +01:00
Amit Prakash f679592add Fix incorrect loop over counters
* This issue was causing additional entries to counter result data
leading to incorrect display in the perfcounter viewer.
2019-05-16 02:11:53 -07:00
baldurk 40268d344d Fix unit tests on linux 2019-05-15 16:35:03 +01:00
baldurk 102d2218b3 Use glXQueryDrawable instead of XGetGeometry to get size. Closes #1381
* XGetGeometry will only work on X IDs so we had a wrap/unwrap pass for
  GLXWindows, but that fails for pbuffers and there's no need when
  glXQueryDrawable can query sizes just as well.
2019-05-15 14:12:18 +01:00
baldurk 2ed1de4632 Fix VS filters for recently added files 2019-05-15 14:12:17 +01:00
baldurk bae420d83f Fix querying for texture view mip/array size 2019-05-15 14:12:17 +01:00
baldurk 00bf36fd27 Don't query uniform value for atomic counter uniforms
* These cannot be rebound so are fixed, and have no location.
2019-05-15 14:12:17 +01:00
baldurk 699f8753af Convert ToStr, Serialise, and TypeName to use literal strings 2019-05-15 14:12:17 +01:00
baldurk c8a518f05c Refactor rdcstr with small-string and literal-string optimisations
* rdcstr no longer inherits from rdcarray, it implements all functionality
  itself.
* There are now three representations:
  - Heap-allocated, same as how rdcarray behaves.
  - Local-allocated, for small strings we store them in a union array.
  - Compile-time literal, only created from user-defined literals.
* The main observation is that a lot of RenderDoc's strings are compile-time
  literals either from struct names, member names, or stringified enum values.
  Storing these directly and allowing them to be moved and copied quickly saves
  on allocations and time. When the string is modified, it's copied to one of the other formats.
2019-05-15 14:12:17 +01:00
baldurk fb333ebc9b Remove 'using std::map'
* This will make it easier to replace std::map in future
2019-05-15 14:12:17 +01:00
baldurk 95e63cb965 Remove pending-dirty operations, mark resources dirty immediately
* Now that the dirty list is only read once at the start of the frame we can
  mark resources dirty mid-frame freely and don't have to defer that. The
  internal resource manager locking prevents us from adding to the list while it
  is being modified.
2019-05-15 14:12:17 +01:00
baldurk ce92ba70d1 Revert accidental change to GL_Simple_Triangle test 2019-05-15 14:12:17 +01:00
amhagan 8a4f7c918b Fix VK_EXT_full_screen_exclusive functions
Hook up AcquireFullScreenExclusiveModeEXT, ReleaseFullScreenExclusiveModeEXT,
and GetDeviceGroupSurfacePresentModes2EXT functions.
2019-05-15 06:09:16 -07:00
baldurk 3791dee78d Fix 32-bit compilation 2019-05-14 20:45:04 +01:00
baldurk 1df6fd9c9d Don't crash if SSBO has no members 2019-05-14 18:16:38 +01:00
baldurk 2f574b57c2 Don't print debug messages while trying to link initial contents program 2019-05-14 18:16:10 +01:00
baldurk d3d5d63b2a Add tests of awkward lifetime edge cases for resources on all APIs
* This is primarily around initial states - either a resource which is from a
  previous frame and maybe wasn't dirtied and needs initial states created for
  it when it's modified mid-frame, or a resource that's created and destroyed
  all within one frame.
2019-05-14 17:13:29 +01:00
baldurk af14d2f0ce If a program is linked mid-capture, inject new initial contents chunk
* This is only intended to handle the case where a new program is created mid
  frame and linked for the first time, and we need the initial contents chunk to
  get location translation among other things. We don't yet handle programs
  being re-linked multiple times mid-frame.
2019-05-14 17:13:23 +01:00
baldurk d3d85fff1f glUniformBlockBinding should be serialised mid-frame only, not in init
* glUniformBlockBinding can be changed at runtime and previously pushing all
  instances of it into the resource record means it would be overwritten by any
  bindings retrieved by the initial contents. That's fine (if redundant) if they
  aren't changed afterwards, but if they are changed then this will be wrong.
2019-05-14 17:13:23 +01:00
baldurk 73a909995a Fetch program used in pipeline when checking drawcall safety 2019-05-14 17:13:22 +01:00
baldurk 0f09aba456 Mark programs as frame referenced in glUseProgramStages 2019-05-14 17:13:22 +01:00
baldurk 8e2b608975 Snapshot descriptor set Resource IDs when preparing initial states
* If we only copy the slot contents without converting Vk* handles to IDs then
  we run the risk that the resource will be deleted and re-allocated mid frame
  before we do that at serialise time.
* Instead we fetch IDs immediately and serialise as IDs, then look up the
  handles on replay
2019-05-14 17:13:22 +01:00