Commit Graph

7917 Commits

Author SHA1 Message Date
baldurk 7a8581ebab Expose function to query git commit hash version info 2018-09-25 10:31:09 +01:00
baldurk 94496e0e2a Support copying structured lists to each other in python
* This requires a copy otherwise object lifetimes are wrong.
2018-09-20 12:35:37 +01:00
baldurk 6ec402e370 rename logfile -> capturefile parameter on execute, document for python 2018-09-18 18:05:39 +01:00
baldurk 9bf00cb1a6 More natural python handling for GetDefaultCaptureOptions, return struct 2018-09-18 18:01:28 +01:00
baldurk 684e814eb7 Protect access to TextureViewer from custom shader editor
* This means we don't crash if the custom shader editor is kept open even when
  the texture viewer is closed.
2018-09-18 12:46:23 +01:00
baldurk 871685fe86 Split up CONTRIBUTING.md and move it under docs/ 2018-09-17 17:31:05 +01:00
baldurk a38f77a6f7 Move CODE_OF_CONDUCT.md file into docs/ subfolder
* This keeps the root folder a little tidier and is still automatically located
  & linked by github. See: https://help.github.com/articles/adding-a-code-of-
  conduct-to-your-project/
2018-09-17 16:50:47 +01:00
baldurk d8294d8a88 Use linked-list & spinlock to avoid non-safe functions. Closes #1102
* Most functions - including pthreads, malloc, free, etc are not safe to use in
  signal handlers. So we use a simple spin-lock and manual linked-list to manage
  our list of PIDs to wait on.
2018-09-17 15:58:10 +01:00
baldurk 834bbe6935 Align detected map differences to StructureByteStride on D3D11 buffers 2018-09-17 13:20:30 +01:00
baldurk c9c51b5a3e Don't update context parameters when MakeCurrent is called with NULL 2018-09-10 10:49:54 +01:00
baldurk 4dea565a61 Only check for D3D12 replay features when actually replaying
* This means structured export can still happen even without any D3D12 support
  at all.
2018-09-10 10:48:35 +01:00
baldurk 5a475211f5 Don't use QFileInfo to get directory part of remote path. Refs #1094
* QFileInfo implicitly converts the path to the local OS's representation, and
  we want to preserve the native path format.
2018-09-07 14:25:55 +01:00
baldurk 6bfb426ab1 Allow specifying {stdin} to specify that input is in stdin. Closes #709 2018-09-07 14:24:45 +01:00
baldurk c091dfa685 return NULL for unhandled nvapi functions, to disable them. Closes #1100 2018-09-07 14:22:48 +01:00
baldurk 553a68de19 Add 'No to All' button when closing a capture connection. Closes #1101 2018-09-07 14:22:47 +01:00
baldurk 0a07902980 Store/create backbuffers on a per-context basis. Closes #1083
* This means we can have different context backbuffers with different formats.
2018-09-06 17:54:53 +01:00
baldurk 8a927f847c Make warning about process injection restrictions more clear 2018-09-06 13:45:57 +01:00
baldurk 296050e298 Add copy progress bar for copies over target control connections 2018-09-06 13:17:12 +01:00
baldurk 0fbb717803 Allow hitting enter with a selected filename to enter a directory 2018-09-06 12:32:30 +01:00
baldurk cca4d364bf Save last capture path per remote host. Closes #1094 2018-09-06 12:30:03 +01:00
baldurk 5145478d19 Remove unused config variable LastCaptureExe
* In the .NET UI this was used to pre-fill the executable selection dialog, but
  it's unnecessary and hasn't been missed.
2018-09-06 10:59:15 +01:00
baldurk 57cf95783d Use a buffer for reading back swapchain at frame capture end on vulkan 2018-09-06 10:52:00 +01:00
baldurk 3b8a7ebf59 Completely remove layer registration code from android 2018-09-05 19:01:04 +01:00
baldurk a4cf3e437d Fix duplicate function definitions on android 2018-09-05 18:28:22 +01:00
baldurk 40938542ef Fix incorrect windowing system enum value for Android 2018-09-05 17:38:00 +01:00
baldurk c05f821235 Only copy previous push descriptor bindings that were valid 2018-09-05 16:41:08 +01:00
baldurk b6e5fe7b35 Detect MoltenVK and disable use of MSAA arrays until it's supported 2018-09-05 15:35:59 +01:00
baldurk b8c06436eb Fix misleading error - GLX is not on all platforms 2018-09-05 15:09:55 +01:00
baldurk 8a9a07d8a5 Read stencil in red component on vulkan, don't use swizzles 2018-09-05 14:52:53 +01:00
baldurk 00c4294258 Specify depth component type for special depth-stencil packed formats 2018-09-05 14:52:29 +01:00
baldurk 291f4d7387 Ignore MoltenVK's huge value for maxBoundDescriptorSets 2018-09-05 13:10:31 +01:00
baldurk 345208e0d9 Avoid atomic ops on vector members
* This doesn't translate well to metalsl and is in general not very useful - we
  were only doing it to avoid packing issues which in some cases are moot
  anyway. E.g. the histogram buffer doesn't have to be std140 and packed like an
  array of vectors, it can be std430 and packed like an array of uints.
2018-09-05 12:51:00 +01:00
baldurk bea1b87f59 Bump xcode build on travis to 9.4 2018-09-05 12:51:00 +01:00
baldurk d20624b32f Add fallback logic for locating MoltenVK & loader on macOS 2018-09-05 12:50:59 +01:00
baldurk bec9c56300 Add basic non-complete GL hooking on apple
* We implement this with dyld interposing. This means we must decide at compile
  time which functions to be hooked - in particular we require a manually
  curated list of functions that are actually exposed in the latest macOS GL
  version. Fortunately this is not a moving target anymore so this list should
  now be complete.
* The hooking is not complete:
  - It doesn't do full context tracking, just context create and make current
  - There's no drawable/window querying or tracking, so windows aren't properly processed and their size is wrong
* Also note that this does not support the replay side yet (CGLPlatform is still
  mostly stubs) and capturing actually still crashes.
2018-09-05 12:50:59 +01:00
baldurk 00d2bf62ff Enable Vulkan build on mac 2018-09-05 12:50:59 +01:00
baldurk 2b8062bc43 Add support for MoltenVK in vulkan back-end 2018-09-05 12:50:59 +01:00
baldurk 65b567a944 Add macOS windowing system to public API
* For now it expects a CALayer since this works around a MoltenVK bug
2018-09-05 12:50:58 +01:00
baldurk ca462ab03f If format doesn't support bits we want, return unsupported. Closes #1098
* The only formats the spec requires are for optimalTiledFeatures and already
  requires all the usage bits we are going to enable ourselves. The only cases
  where we can get in trouble is for formats that support a subset of those
  features e.g. on linear tiled images.
* So we can safely remove the reported support for those formats and still be
  compliant. The application must then work with that lack of support the same
  way as it would do if the ICD itself didn't have that support.
2018-09-05 10:59:00 +01:00
baldurk 40c3a735a4 Store enabled extensions on replay so we can check for them 2018-09-05 10:58:59 +01:00
baldurk 76e2a0f42e On macOS, force a repaint of CustomPaintWidget upon UpdateRequest
* For some reason the actual paint event never makes it through after converting
  to metal-compatible widgets, but painting in response to UpdateRequest (which
  should become a paint really) works about as well.
2018-09-05 10:01:35 +01:00
baldurk 7da13165e9 Set up relative-to-executable RPATH on macOS, copy lib into bundle 2018-09-05 10:01:35 +01:00
baldurk c2a8365eaa Make GL text rendering macOS compatible
* We switch to core context compatible shaders rather than assuming older GLSL
  versions are supported
2018-09-05 10:01:35 +01:00
baldurk 57c118c1e6 Use DYLD variants of LD_PRELOAD etc on macOS 2018-09-05 10:01:35 +01:00
baldurk a35c8513cc Implement hooking support on apple
* This assumes it will be used in concert with dyld interposing so it doesn't
  actually do any hooking apart from intercepting dlopen/dlsym to substitute any
  dynamic access to hooked functions. Otherwise it just fulfills the contract by
  calling callbacks and populating original function pointers
2018-09-05 10:01:34 +01:00
baldurk 336d1a65ea Fix linking of renderdoc_libentry on mac
* We use -force_load to ensure the library is used and referenced.
2018-09-05 09:58:17 +01:00
baldurk 296ebc065b Don't use unnecessary swizzle on vulkan text atlas 2018-09-05 09:58:17 +01:00
baldurk 9a1b8ef87d Add a workaround for macOS to avoid serialising size_t
* We never should have serialised size_t in the first place so this shouldn't
  have happened, but since we want to keep some semblence of best-effort
  backwards compatibility, we'll keep the code and just disable it on macOS.
2018-09-05 09:58:17 +01:00
Jake Turner 21de779509 Improved Apple code to get network port from spawned process
Improved the parsing code for lsof Added a retry to lsof function to account for delay between spawning process
2018-09-05 09:58:16 +01:00
baldurk 9a5d34f725 Add GL_EXT_memory_object* to whitelisted GLES extension list 2018-09-05 09:58:16 +01:00