Commit Graph

5219 Commits

Author SHA1 Message Date
baldurk b4d3401866 Remove nested structs from D3D11 pipeline state and move to namespace
* Moving into a namespace makes it easier to give the structs non-clumsy
  names while still being unique and not overlapping with the other API
  pipeline states.
2017-04-18 14:57:33 +01:00
baldurk b271eb3103 Remove nested structs in replay API (not including pipe states)
* SWIG doesn't handle nested structs conversion to python, so we are
  going to split out all structs. Mostly this is the case in the
  pipeline state structs, but this commit splits out a few in the rest
  of the API.
2017-04-18 14:57:33 +01:00
baldurk d40fc8471d Change API enums to enum class, remove now redundant prefixing
* This gives a little nicer syntax, a bit better type safety, and also
  reflects better for SWIG bindings. Overall it's a minor change but
  better.
* We don't update the C# UI at all, since it's soon to be removed and
  not worth the effort/code churn.
* For now so we're ABI compatible with C#, all enums are uint32_t, but
  that is an obvious optimisation in future to reduce struct packing.
* We avoid 'None' as an enum value, because it's a reserved word in
  python so will cause problems generating bindings.
2017-04-18 14:57:33 +01:00
Janos Pantos 71e779a08f Fix driver warnings during android replay
Eliminate driver warnings for invalid framebuffer attachments, blends
and image formats (in case of glBindImageTexture). Framebuffer
attachment data query and setter codes are also refactored a bit.
2017-04-18 06:56:37 -07:00
Janos Pantos 942a323b8e Add check for EXT_texture_filter_anisotropic extension 2017-04-18 06:56:37 -07:00
Janos Pantos 7f04526b39 Fix replay errors on android
Avoid executing non-GLES codes, and add checks for missing function
pointers.
2017-04-18 06:56:37 -07:00
Janos Pantos 910501062b Emulate some missing functions required for GLES
Emulate missing DSA texture and renderbuffer functions, and add some
draw functions which are not available before GLES 3.2.
2017-04-18 06:56:37 -07:00
Janos Pantos 25c4123119 Fix checking function pointers in case of GLES 2017-04-18 06:56:37 -07:00
baldurk faa1b6ced5 Hold references to used resources on deferred command lists
* We need to keep any resources used on deferred contexts alive until
  the produced command list is released. Otherwise the resource might be
  destroyed before we replay it, and we'll have lost that information.
2017-04-17 13:37:19 +01:00
baldurk d81f708f8c Serialised config settings list has to be public for the auto-xml-ising
* Private variables are skipped by the serialisation unfortunately.
2017-04-17 12:28:42 +01:00
baldurk 1be2e1086a Make sure shader info search paths are always available. Refs #572
* Previously they were only set when replaying a recorded SetPrivateData
  which meant any blob paths specified in the private blob part didn't
  have the search paths configured for locating relative paths.
2017-04-17 12:28:13 +01:00
baldurk 8983e67dc2 Specify SHADER_READ_ONLY_OPTIMAL layout for images in RenderTexture 2017-04-17 12:12:19 +01:00
baldurk 7e24b78586 Un-ignore the shader checker validation layer
* No longer seems to spam lots of nonsense, so for now we'll let it run.
2017-04-17 12:12:19 +01:00
baldurk 2b5d07d749 Assert that the whole-memory buffer created has valid requirements
* This keeps the validation layers happy
2017-04-17 12:12:19 +01:00
baldurk 9278af463a Check for sparse buffer memory requirements when unbinding. Refs #580
* If a buffer is small, its memory requirements might be aligned up to
  a larger value for sparse binding.
2017-04-17 12:12:18 +01:00
baldurk af40baca4e Make sure to submit and delete any semaphores created during replay 2017-04-17 12:12:18 +01:00
baldurk 11739e0575 Check for depthClamp phys device feature and only enable if available 2017-04-17 12:12:18 +01:00
Janos Pantos 32855233d0 Fix determining available extensions for GLES 2017-04-17 02:39:46 -07:00
Janos Pantos 7e98ef32d1 Add list of supported extensions for GLES 2017-04-17 02:39:37 -07:00
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