Commit Graph

11356 Commits

Author SHA1 Message Date
thisisjimmyfb 80ededa2e4 whitelist GL_OES_surfaceless_context 2020-08-27 19:35:15 +01:00
baldurk 9c58c6adb2 32-bit compile fix 2020-08-27 19:34:12 +01:00
baldurk 220ee1b3e6 Ensure RDStyle sets application palette properly 2020-08-27 17:57:09 +01:00
baldurk cc41849551 Add debug verbose logging toggle to ptrace code 2020-08-27 17:38:16 +01:00
baldurk 8c4bb6610f Fix ptrace getting wrong entry point address for some ELFs. Closes #2022
* The entry point is remapped several times:
  - ELF header declares it at RVA 0x1234
  - [new in this change] The section containing that says it's at addresses
    0x1200 - 0x1500, but on disk it's actually at file offset 0x1100 meaning our
    entry point is actually 0x100 earlier, at 0x1134
  - The ASLR maps the executable section at *file offset* 0x1100 to 0xDEADBEEF00
    Importantly when file offset != base RVA, this needs to be taken into
    account.
  - Finally the entry point is at 0x34 offset into the section because it's
    mmapped, so the entry point is 0xDEADBEEF34.
2020-08-27 17:36:34 +01:00
baldurk 4c8067b65c Add special case to XML codec for embedded logfiles 2020-08-27 16:02:53 +01:00
baldurk 684290c475 LZ4 compress embedded diagnostic log 2020-08-27 16:02:18 +01:00
baldurk 680857cb0f Fix structured data conversion to preserve timestamp base
* The timestamp base is queryable from the capture file and settable too, and
  conversions preserve un-rebased timestamps. Only rebasing when loading a
  capture for replay.
2020-08-27 15:54:01 +01:00
baldurk 9583a26754 Fix typo that trashed durations and didn't convert timestamps 2020-08-27 15:13:21 +01:00
baldurk 3eaaf59319 Prefer floor rounding for Qt 5.14+ fractional DPI handling
* Non-integer DPI handling is fundamentally a broken concept, because UIs are
  essentially pixel art with some vector drawing. Rounding down half fractions
  seems to be a better tradeoff than rounding up or trying to render them as-is.
2020-08-27 13:19:21 +01:00
baldurk 6d810f2ca1 Fix naming getting muddled for indirect draws 2020-08-27 11:26:18 +01:00
baldurk 4eeaaad75f Fix event counting for single vulkan indirect multidraws. Closes #2025
* We need to count the fake indirect subcommand *before* checking if we're in
  range, otherwise replaying up to but not including the draw will miscount and
  replay the draw itself.
2020-08-27 11:26:03 +01:00
baldurk 3f63d1532d Fix extended thumbnail length not being written 2020-08-27 11:24:45 +01:00
baldurk ecbfeb7dc1 Fix linux compilation 2020-08-27 00:02:17 +01:00
baldurk 50089207c1 Fix 32-bit compile error 2020-08-26 20:56:28 +01:00
baldurk 8973ac0241 Don't serialise present chunk for glFrameTerminatorGREMEDY 2020-08-26 19:52:34 +01:00
baldurk f63a948392 Cache FBO attachments to avoid repeated query & lookup 2020-08-26 19:27:42 +01:00
baldurk 3a1b4500ee Avoid some unnecessary potentially expensive work on frequent calls 2020-08-26 19:27:42 +01:00
baldurk 022ba9ce67 Combine GL maps for looking up ID/Resource Record from resource name 2020-08-26 19:27:42 +01:00
baldurk 5e79465ab5 Avoid use of virtual function call for GetID within GL driver 2020-08-26 19:27:42 +01:00
baldurk c5887eb4e4 Reduce wasted iteration in GLRenderState::MarkDirty
* Only iterate up to the highest known bind for indexed targets, which will
  generally be low or 0.
2020-08-26 19:27:42 +01:00
baldurk 61d15e00ef Don't create empty GLRenderState for use with MarkDirty
* MarkDirty re-queries the state and doesn't use anything so it's wasted time
  initialising a massive structure
2020-08-26 19:27:42 +01:00
baldurk 55c62dd307 Serialise timestamps and durations as tick counts, and convert on replay
* When we're capturing programs with high-frequency enough API calls, the
  overhead of the math & extra function calls over Timing::GetTick() is
  measurable. Removing it and serialising pure tick based durations/timestamps
  and then converting on replay gives us identical results and saves time while
  background capturing.
2020-08-26 19:27:42 +01:00
baldurk 9fd7f447d2 Switch thumbnail to bytebuf instead of byte pointer and length 2020-08-26 19:27:42 +01:00
baldurk 51b228b042 Disable resource record chunk locking for command buffers
* The API user is supposed to lock this for us, so don't waste time locking
  ourselves.
2020-08-26 19:27:42 +01:00
baldurk 1b844d1498 Add resettable chunk allocator for recording command buffers 2020-08-26 19:27:41 +01:00
baldurk d922db6dff Fix broken re-use of resource shadow deferred ctx pointers. Closes #2023 2020-08-26 19:14:42 +01:00
baldurk 62f55a374c Add proper fence around overlay rendering command buffers 2020-08-26 18:46:56 +01:00
baldurk a457aa5a8f Fix handling of CONCURRENT swapchain images 2020-08-26 18:46:56 +01:00
baldurk f664d13bfc Clear up queue data when device is destroyed 2020-08-26 18:46:56 +01:00
baldurk 753806d526 Add a specialisation for buffer reference add/remove
* This skips some potentially expensive (and redundant) checks if the buffer is
  a view.
2020-08-25 17:24:23 +01:00
baldurk f013824f97 Cache D3D11 buffers being read-only to speed up bound-for-write checks 2020-08-25 16:16:39 +01:00
baldurk a32bf777be Add extra case to assert 2020-08-24 10:52:30 +01:00
baldurk 155d455f01 Fix typo in glClearFramebufferfv variants 2020-08-24 10:04:23 +01:00
baldurk a6871327aa GL renderbuffers do not have mips, return early from function
* Some of the other sub-functions don't handle non-texture targets
2020-08-21 11:49:44 +01:00
baldurk 409f256411 Fix event ID indexing for multidraw commands on GL. Closes #2019 2020-08-21 11:49:44 +01:00
Tim Gfrerer 07ee28c97f Allow Python 3.8 to be detected
Adds python 3.8 to the list of python 3 versions. 

Thank you so much for renderdoc!!
2020-08-21 11:07:11 +01:00
baldurk 5c0dadae84 Test that RTV descriptor copies in D3D12 are properly recorded mid-frame 2020-08-20 17:09:51 +01:00
baldurk 3e100109da Test destroying/freeing NULL handles, fix validation errors 2020-08-20 17:02:03 +01:00
baldurk 0b0beb3a20 Call virtual functions by explicit class in constructor 2020-08-20 16:11:05 +01:00
baldurk 81fbf4bcc9 Fix some dodgy memcpy calls 2020-08-20 16:11:05 +01:00
baldurk 112741a74c Remove some parameter name shadowing 2020-08-20 16:11:05 +01:00
baldurk fa24dc8872 Silence some PVS warnings 2020-08-20 16:11:05 +01:00
baldurk b5de095f53 Use explicit enum comparisons to check for empty flags 2020-08-20 15:26:02 +01:00
baldurk 52632ccc1c Fix incorrect array index used in disassembly 2020-08-20 15:26:02 +01:00
baldurk 274185f808 Fix wrong size for memset 2020-08-20 15:26:02 +01:00
baldurk c01dd73bf6 Remove some dead code/variables 2020-08-20 15:26:02 +01:00
baldurk 64f98f286e Add test of heavy descriptor reallocation and reuse 2020-08-20 13:48:17 +01:00
baldurk 077aebc9e1 Fix sanitisation of aspect mask in subresource range 2020-08-20 10:49:23 +01:00
baldurk 83714b825c Remove note about android support being new 2020-08-20 10:47:16 +01:00