Commit Graph

5200 Commits

Author SHA1 Message Date
Peter Gal 588eb083db Remove obsolete workarounds to force shared library linking
As the --no-as-needed linker option was added there is now
no need to force link to GL/EGL shared libraries via
extern methods.
2017-04-17 02:39:29 -07:00
Peter Gal 081f65dff1 Disallow the linker to ingore shared libraries during linking
In some cases when the renderdoccmd/qrenderdoc is linked the linker
ignores the libEGL.so and only uses the librenderdoc.so.
This is because the renderdoc shared library provides the
same symbols as the libEGL.so. However we need to keep the
libEGL.so as we are using RTLD_NEXT in the renderdoc shared
library.
2017-04-17 02:39:29 -07:00
Peter Gal 386c830b1d Load wrapped library early in case of Android
On newer Android it is not possible to use the
LD_PRELOAD functionality. The target application
should be directly linked with the RenderDoc library.
However in that case we also need to load the
target library early, so a simple implementation
for the PosixHookLibrary is added.
2017-04-12 05:09:54 -07:00
Rémi Verschelde b37a01d8ad Support LIB_SUFFIX for lib64-using distros 2017-04-09 15:14:42 -07:00
baldurk 71e347d3b3 Add some missing extension-function checks. Refs #569 2017-04-09 17:34:45 +01:00
baldurk 729706e7f1 memcpy into the right structure, avoids trashing data. 2017-04-08 16:12:48 +01:00
Peter Gal 12f4f08e56 Guard glPolygonMode call in GL ES
In GL ES the glPolygonMode is not supported so we'll
ignore calls to it.
2017-04-08 08:12:36 -07:00
Peter Gal 0d088a9b48 Export EGL functions which we don't intercept as pass-through functions 2017-04-08 08:12:26 -07:00
Michael Rennie 3b8aefa061 Make filename column resize to text, needed for long package names.
Previously the empty Size & Date columns resize to their headers, and the
Filename column gets squashed. Also made the dialog wide enough.
2017-04-08 08:12:14 -07:00
Michael Rennie 80354228c3 VkCommandBuffer missed capture references to renderPass & framebuffer.
Added a warning in SerialiseObject that may help to detect other similar
cases of this problem.
2017-04-08 08:12:14 -07:00
baldurk 2978755d54 On D3D11, any non-CS stage can access OM UAVs. Refs #564 2017-04-06 11:46:44 +01:00
baldurk 5f3b75739d Don't try to view buffers with ViewTexture 2017-04-06 11:46:44 +01:00
Peter Gal 489cc76c07 Specify GL ES version for the Android renderdoccmd
For Android the minimum GL ES version must be configured
in the AndroidManifest.xml so we would not end up
with an old ES version.
2017-04-05 12:00:31 -07:00
baldurk 728849930d When fetching shader output, use the proper sample mask 2017-04-04 14:00:00 +01:00
baldurk f385d082fe Don't trash render state when resizing swapchains 2017-04-04 13:58:58 +01:00
baldurk 6c670bb50f Add some extra marker regions for debug pixel 2017-04-04 13:58:37 +01:00
baldurk 8f4c17c19b Fix missing ElementSize for structured UAVs bound on output merger 2017-04-04 13:33:24 +01:00
baldurk e1ea59e2e4 Temporary compile fix for enum declare until enum class refactor 2017-04-04 00:12:18 +01:00
baldurk 5030debdea Add remapping of physical devices on vulkan captures.
* This will solve the common case encountered when physical devices
  vary between capture and replay, where two devices swap over.
  E.g. [0]=AMD [1]=NV to [0]=NV [1]=AMD
* This can also happen with discrete and embedded GPUs that swap order.
* It will also provide a limited amount of portability by selecting a
  closer matching physical device if more than one is available.
2017-04-03 23:29:14 +01:00
baldurk 4064ef1b0e Fix copy-paste error replaying CmdDrawIndexedIndirect as CmdDrawIndrect 2017-04-03 19:23:35 +01:00
baldurk f33f975970 Fix slice calculation for displaying 3D textures on D3D12 2017-04-03 19:05:26 +01:00
baldurk 666aee093b Backport 'tagged' render invokes from qrenderdoc
* This is a possible fix for a case where render work triggered by mouse
  movements (such as pixel and vertex picking) can happen faster than it
  executes, leading to a backlog of render commands and a noticeable lag
  which only gets worse the more you move the mouse until everything
  seems to be unresponsive or laggy (especially if you then trigger a
  blocking command like event change, which will block the whole UI
  until the queued picks happen).
* Since a new pick coming in will override and make redundant the
  previous pick, we allow the render commands to do just that. If a new
  command comes in, we remove any previous commands with the same tag
  and put the command in the first match (this prevents a tagged invoke
  always being pushed to the back of the queue).
2017-04-03 18:31:59 +01:00
baldurk b63a32fe3b Outputs from pixel shaders are automatically colour output system values 2017-04-03 18:28:16 +01:00
baldurk 965c48e250 Only pretend to match replay requirements during capture. Refs #552
* When creating replay-only images via vkCreateImage we don't need to
  add any extra properties. Only during capture we need to add replay-
  needed properties, so that the same call will be used as during replay
  and so the same set of memory requirements.
2017-04-03 15:30:55 +01:00
baldurk e93dc87388 Don't hook internal CUDA dlls 2017-04-03 15:19:02 +01:00
Michael Vance a74ddadd59 Improved TreeListView copy/paste support.
- Fix sorting to respect visual ordering by ID, including parent.
- Provide Ctrl-A to 'Select All'. Note that there is an extant
bug with the redraw where renderdocui will not repaint when
it gets focus back.
2017-04-03 07:18:41 -07:00
Janos Pantos 3193595358 Refactor pixel storage mode getter/setter codes
Add PixelPackState similarly to PixelUnpackState, and use these two for
querying and setting pixel pack/unpack modes everywhere in the GL
codebase.
2017-04-03 07:18:31 -07:00
Janos Pantos 1a6b19a314 Remove using some non-GLES features from GL manager/renderstate/replay 2017-04-03 07:18:31 -07:00
Janos Pantos e110b759d3 Fix querying bound transform feedback in GL manager 2017-04-03 07:18:22 -07:00
Janos Pantos d22d744675 Fix mip info for rendering textures during remote replay
Textures are not cached during remote replay at client side, so do not
try to use mips from empty texture cache.
2017-04-03 07:18:15 -07:00
baldurk c50902f030 For depth-only textures allow a depth-read-only DSV to be bound with SRV
* We were only allowing depth-stencil textures to be bound with depth
  read-only DSVs, which doesn't cover all cases.
2017-03-28 11:48:28 +01:00
baldurk e89f047e09 Warning fix for VS2017, don't call toupper/tolower as they're int -> int 2017-03-28 11:48:28 +01:00
Peter Gal bb8ae3fb12 Add Android build support for GL ES
Allow building GL ES for Android.
Minimal guards are added to avoid using X11 calls
in case of Android and added support for Android
windowing system.
2017-03-28 03:47:57 -07:00
Janos Pantos a73c456a80 Extend GL extension check with GLES versions and compatible extensions 2017-03-28 03:47:50 -07:00
Michael Rennie 6bc0851121 On glDrawArrays, copy client vertex arrays into temporary VBOs.
GLES allows drawing from client memory instead of VBOs. We keep a set of
buffers, one for each potential attribute, to bind the vertex attribute to
instead of the client array pointer. These buffers are then filled before
the draw call.
2017-03-28 03:47:41 -07:00
Dimitris Kapnopoulos 6e06eb5164 Added tooltips for all QToolButtons. RDSplitter checks for valid index.
handleDoubleClicked in RDSplitter checks if the index argument is less than zero or bigger than count
2017-03-28 02:54:15 -07:00
Michael Rennie 74ffa0ef87 VK_NULL_HANDLE build fix. 2017-03-27 05:56:42 -07:00
baldurk 539341a96f 32-bit compile fix 2017-03-22 11:09:11 +00:00
baldurk 6e3f50c3ce Store the original vulkan swapchain imageUsage and apply it on replay
* This means if someone was using STORAGE_BIT for the swapchain then we
  add the bit to our fake backbuffers on replay.
2017-03-21 15:30:27 +00:00
baldurk e11f4a5ba7 Fix serialisation of non-empty arrays in dummy pQueueFamilyIndices 2017-03-21 15:13:51 +00:00
baldurk dabb790ee1 Fix handling of instanced mesh output from GS/tessellation stages
* For VS we can assume that instances all output the same amount of data
  so each instance outputs totalVerts / numInstances verts. However that
  assumption doesn't hold true for geometry/tessellation stage where
  each instance can expand independently.
* Unfortunately the only way to get per-instance sizes is to do an
  O(N^2) loop of draws up to the real number of instances, checking the
  total output each time, and find out the per-instance size from there.
* Once vulkan has an implementation for GS/Tess out, it will be simpler
  as we can just patch the shader to write to an atomic counter with the
  primitive/vertex output count in each instance.
2017-03-21 15:12:23 +00:00
baldurk d0394d9233 Only do queued row select on the stage that was selected
* This prevents out-of-range errors when picking in a GS out view an
  expanded mesh, and getting a row that's higher than exists in the VS
  in view
2017-03-21 12:38:21 +00:00
Dimitris Kapnopoulos d3faa58a78 Added Tips Dialog. Changed Tips_SeenFirst to Tips_HasSeenFirst 2017-03-21 04:09:47 -07:00
baldurk f3d7dc774f Add a D3D12MarkerRegion for future use
* Not used yet, as I need to figure out how to apply list markers when
  we record multiple individual lists. Doing open/close of a list just
  for the marker seems wasteful. It could be fired directly at the queue
2017-03-20 21:20:15 +00:00
baldurk 1b992db45c Close list earlier so that error bail-out conditions won't leave it open 2017-03-20 21:20:04 +00:00
baldurk a29dfb814b Set sample mask and sample count for patched PSOs in D3D12 overlays 2017-03-20 21:17:16 +00:00
baldurk d28657bd4a Set vertexOffset not baseVertex with offset in DrawInstanced() 2017-03-20 21:17:15 +00:00
baldurk 0ead37018d Remove redundant fix causing off-by-one errors at runtime. Refs #380
* Previously this fix was needed for shader debugging since we did a
  replay up to before the draw, before debugging. However we don't do
  that anymore and in general the event ID we last replayed will be
  accurate.
2017-03-20 21:16:08 +00:00
Janos Pantos 8b27eda845 Emulate glGetTexImage for GLES 2017-03-20 10:08:43 -07:00
baldurk d2d86b5726 Add 'floateleven' buffer format for R11G11B10 packed data, fix unpacking 2017-03-20 13:02:20 +00:00