Commit Graph

8644 Commits

Author SHA1 Message Date
Benson Joeris a7b21ae2d2 More precise memory tracking for vkCmdCopyImageToBuffer
This change tracks the exact memory regions of the buffer accessed in
`vkCmdCopyBufferToImage` and `vkCmdCopyImageToBuffer`. In the case of
`vkCmdCopyImageToBuffer`, using the exact memory regions allows the buffer write
to be treated as a `CompleteWrite` (instead of `PartialWrite`).
2019-02-19 15:56:57 +00:00
Benson Joeris d6b706b132 Add GetTexelShape to compute image format texel info
This returns the width and height of the texel blocks, and the number of bytes
per texel block.
2019-02-19 15:56:57 +00:00
baldurk d1e0d7f88f Fix segfault if allocatedPrograms vector is deleted before shutdown 2019-02-18 20:43:00 +00:00
baldurk 2ae5be5328 Fix duplicated label name 2019-02-18 20:42:59 +00:00
Benson Joeris 465596e563 Serialise ref types for Vulkan device memory ranges 2019-02-18 17:33:59 +00:00
Benson Joeris 5e49b076b5 Add serialization for FrameRefType 2019-02-18 17:33:59 +00:00
baldurk c289290ffa Fix unwanted trailing space in extension name 2019-02-18 17:23:21 +00:00
baldurk 7e363261a4 Add explicit metal check for MS<->Array copies
* Two parts of this feature don't seem to work - MSAA Arrays and writeable MSAA
  textures. It's easier to disable it completely when running on Metal.
2019-02-18 17:23:21 +00:00
baldurk 80644680ab Handle drivers that support 4x MSAA but not 2x 2019-02-18 17:23:20 +00:00
baldurk 73c3159615 Find include-bin via $<TARGET_FILE> when not cross-compiling
* On macOS it's not output directly into the runtime output directory, but under
  a subdir for each build type (e.g. Debug, Release).
2019-02-18 17:23:20 +00:00
baldurk 3aa64e2e8e Completely emulate ARB_program_interface_query using glslang
* We already did this partially, enough for capturing, but now we also do it on
  replay.
2019-02-18 17:23:20 +00:00
baldurk 2ea6174c83 Update glslang to latest tip-of-tree
* This is glslang from commit 9f538c7207b87bd4219a8a9cc95e3c43798793b7
2019-02-18 17:23:20 +00:00
baldurk 5a1c5e2db5 Fix extension package names being incorrect 2019-02-18 17:23:19 +00:00
Benson Joeris 5bc993f01f Mark simple copies into VkDeviceMemory as CompleteWrite 2019-02-18 17:23:09 +00:00
baldurk 1713dcad1b Fix typo in python version macro use in renderdoccmd 2019-02-15 18:17:34 +00:00
baldurk 5484bcbf1a Don't error if a non-existant file is passed via TestFailureException 2019-02-15 18:17:20 +00:00
baldurk 7ef8ed0a7a Drop the requirement for PIL in the tests, use pypng drop-in replacement
* This means we no longer need to import PIL from somewhere else if we run via
  renderdoccmd test functional
2019-02-15 18:17:06 +00:00
baldurk 24882eb486 When event changes in BufferViewer, preserve row offset don't reset 2019-02-15 15:10:31 +00:00
baldurk c72e79960e Allow launching demos program with no arguments to see test selection 2019-02-15 14:55:30 +00:00
baldurk 69dc9f8031 Print prefixed output in a single call to rdclogprint_int
* On android each call to rdclogprint_int goes onto its own line in the logcat
  output, so we need to combine the prefix externally.
2019-02-15 11:55:51 +00:00
baldurk 9ee4795948 Don't underflow when reading padding if serialiser is in an error state 2019-02-15 11:28:27 +00:00
baldurk 982ef03fd1 Fix android build 2019-02-14 22:34:16 +00:00
baldurk 35c1aab64d Update CI to run the correct unit test command 2019-02-14 22:01:52 +00:00
baldurk 8603420d86 Remove vkCopyDescriptorSet path from vulkan postvs fetch entirely
* The workaround had to be removed on Android due to buggy drivers, but it's
  unnecessary in general.
2019-02-14 21:25:25 +00:00
baldurk d579bf209c With multi-line logs, reprint the prefix each time
* This means a bit more regularity to the log prints and allows them to be
  parsed on android.
2019-02-14 18:09:15 +00:00
baldurk 79a626a8e1 Put android logcat processing onto separate thread
* This allows it to tick faster when e.g. loading a capture that takes a while
  without any pings. It also allows it to continue going for a short while after
  the remote server shuts down to capture any crashdump messages.
2019-02-14 18:01:09 +00:00
baldurk fb9aac95d1 Add function to detach from a thread 2019-02-14 16:54:40 +00:00
baldurk 34a97482dd Add helper shortcut to 'renderdoccmd test' to run functional tests
* This invokes run_tests.py with any arguments but specifies the renderdoc
  module and python module paths automatically. Only works if built within the
  project repo itself as otherwise it won't locate the test script
2019-02-14 15:45:22 +00:00
baldurk 634040d4b5 Change working directory to script location for running functional tests 2019-02-14 15:15:45 +00:00
baldurk ce991e421a Drop psutil requirement in functional tests, fetch memory usage directly 2019-02-14 15:08:28 +00:00
baldurk 0753793f24 Allow passing --help or -t to test commands in renderdoccmd
* Previously it would be swallowed and processed as the argument to the test
  command itself. We need to do a little manual parsing and stop cmdline from
  doing too much work.
2019-02-14 13:17:19 +00:00
baldurk 6b571e9a06 Don't return from parse() if argc is 0, need to check required arguments 2019-02-14 13:09:43 +00:00
baldurk 0e926ee258 Fix broken timeout calculation causing intermittent CI failures
* It turns out that min(0, x) is 0, and not a great way to prevent underflow!
2019-02-14 12:56:55 +00:00
baldurk e9e42839c3 Support specifying structs in buffer formatter. Closes #805
* Structs and arrays-of-structs are completely flattened for the purposes of
  displaying them still.
2019-02-14 12:55:44 +00:00
baldurk f8d490d9e6 Add newline to end of file to satisfy gcc 2019-02-13 21:21:23 +00:00
baldurk 03a786c8ba Fix missing calling convention on ID3DInclude implementations 2019-02-13 21:04:34 +00:00
baldurk 96d43b6875 Only include glsl_shaders code when building a driver that needs it 2019-02-13 21:03:48 +00:00
baldurk 57b703d2ab Fix compilation on windows with missing calling convention specifier 2019-02-13 20:57:25 +00:00
baldurk b41eb9b91b Remove WireframePS that's no longer used or defined 2019-02-13 18:50:56 +00:00
baldurk bbc2f47fa8 Centralise generation of buffer format strings for struct buffers
* We also fix a number of issues that could cause incorrect formats to be
  generated.
* Test cases added for D3D11/GL/Vulkan to test different struct types. These
  aren't automated at the moment because most of the code they're testing is in
  the UI itself.
2019-02-13 18:50:56 +00:00
baldurk 166bd285ae Add help output when running demos program 2019-02-13 18:50:56 +00:00
baldurk 28e0e17d16 Enable scalar block layout feature in VK_Adv_CBuffer_Zoo 2019-02-13 18:50:56 +00:00
baldurk 014619eaf9 Add D3D11_RESOURCE_MISC_SHARED in GL/DX interop tests
* Necessary for it to work correctly on AMD
2019-02-13 18:50:55 +00:00
baldurk 5e62d828d7 Add support for EGL_EXT/KHR_swap_buffers_with_damage 2019-02-13 18:50:55 +00:00
baldurk 35294607f5 Update docs with new GL extension requirements 2019-02-13 18:50:55 +00:00
baldurk deb3f4d92c On macOS call glFinish before changing away from any context 2019-02-13 18:50:55 +00:00
baldurk eccf1add8a Don't try to compile quadwrite shader if required extensions are missing 2019-02-13 18:50:55 +00:00
baldurk 0df9e33b6b Bind a dummy texbuffer for GL render texture, as macOS seems to need it 2019-02-13 18:50:55 +00:00
baldurk 766c1a9bb9 When patching shaders for separability, declare the extension 2019-02-13 18:50:55 +00:00
baldurk fe0be58908 Implement CGLPlatform using CGL and NSOpenGLContext
* On replay on macOS we use NSOpenGLContext so we can render to windows.
* We have two windowing systems on mac - one for Metal compatible outputs and
  one for OpenGL compatible outputs.
2019-02-13 18:50:54 +00:00