Commit Graph

5995 Commits

Author SHA1 Message Date
baldurk cf95e7a3f6 VK_KHR_get_memory_requirements2 is a device, not instance, extension 2017-09-11 11:43:25 +01:00
baldurk dd5590f8e5 Fetch dispatch thread dimension always even if we don't disassemble
* We need the dispatch thread dimension to be valid when creating the
  shader reflection data, which may happen before we've disassembled the
  bytecode.
* We do a minimal pass just to skip to that opcode and extract the dims.
2017-09-11 11:43:19 +01:00
baldurk d6c03f58bc Select the next highest event when replaying from an event
* Searching down from the end for the next lowest event causes us to
  sometimes replay backwards when a marker is selected (and has no
  event in the array to replay directly). This can crash on vulkan, and
  is unintuitive/wrong on other APIs. Instead we follow the behaviour
  that we have elsewhere so that when a marker is selected we move
  _forward_ in the frame to select the next event after it.
* Checking the history there doesn't seem to be any strong reason for
  this direction of search.
2017-09-11 11:43:08 +01:00
michaelrgb 8d7b4d2f81 Set TF mode for all initProg varyings, to stop driver culling uniforms. 2017-09-07 10:41:46 +01:00
baldurk 92855d3749 Fix remapping 3D textures on vulkan, for fetching texture data to save 2017-08-29 14:47:49 +01:00
baldurk 177d595d4f Ensure to always use wrapped resources when constructing resource ranges
* If we don't consistently use wrapped resources then we could get false
  negatives.
* For example, views always constructed with the *unwrapped* object, but
  when unbinding a backbuffer before a swapchain resize, we used the
  *wrapped* backbuffer texture to search for clashes. This meant some
  bindings went un-noticed, and left references dangling.
2017-08-18 18:49:23 +01:00
baldurk 9a409eb413 Don't look up offset in serialised data as it's already been applied
* Fixes a crash reading off the end of the serialised buffer
2017-08-17 18:10:07 +01:00
baldurk 5e519f58c3 Create an equivalent 'loadFB' framebuffer for every 'loadRP' renderpass
* In order to be able to split apart and partially replay every render
  pass, we change them to always STORE instead of DONT_CARE, and then
  create a patched version that only has a single subpass (for each
  subpass in the original) and has LOAD/STORE semantics.
* However because of the requirements for framebuffer <-> renderpass
  we have to now multiply up the framebuffer to make a patched fb to
  correspond to each patched renderpass.
2017-08-17 18:10:06 +01:00
baldurk 31107b3a1a Make sure not to offset secondary cmd buf submissions multiple times
* When a primary command buffer is submitted that contained some
  secondary executes, we offset their executes to be 'absolute'
  root-relative events so they know when they're being partially
  replayed.
* If the same secondary is executed in multiple primaries that are
  submitted separately, we don't want to apply the same offset over and
  over, instead we mark an execute as updated and only offset 'new'
  executions.
2017-08-17 18:09:53 +01:00
Cody Northrop e42f883d26 cmake: Update javac classpath to work on Windows 2017-08-17 10:00:04 +01:00
Cody Northrop 88587f8c5d docs: Update CONTRIBUTING.md for Windows and macOS 2017-08-17 10:00:03 +01:00
Cody Northrop 18be4d91b2 cmake: Add control over Android build-tools version
Specify -DANDROID_BUILD_TOOLS_VERSION=<foo> to change from the
default of 26.0.1.

Also respect the selected Android platform version.
2017-08-17 10:00:03 +01:00
Cody Northrop 7044961970 docs: Add setup and build steps for Android on Ubuntu 2017-08-17 10:00:02 +01:00
Cody Northrop 52e6af97a1 travis: Update config for Android with latest SDK/NDK 2017-08-17 10:00:01 +01:00
Cody Northrop 83e1e1506b android: Update packaging to work with latest SDK
This removes dependencies on deprecated tools "ant" and "android project"

The new method relies on JAVA_HOME and ANDROID_SDK being set.

It also requires specific versions of the Android build-tools (26.0.1) and
platforms (android-23).  See updates to CONTRIBUTING.md and our Travis-CI
config for details.

Travis-CI and documentation also roll forward to latest public NDK r14b.
2017-08-17 10:00:01 +01:00
baldurk 58cf0cd7fd Add default initialisation for tag object, fixes a warning on gcc 2017-08-16 18:29:20 +01:00
baldurk 3d9a26cd8f Fall back to creating a non-SRGB capable fbconfig. Refs #721
* In some cases it seems that no sRGB fbconfigs are available, so we
  fall back and create a non-SRGB one. This may render incorrectly but
  at least it should run without crashing.
2017-08-16 18:29:13 +01:00
baldurk d5d51aa516 Only unwrap elements in VkDescriptorImageInfo that should be valid
* In particular for e.g. elements that don't require a sampler, the
  VkSampler may point to a random address if it's uninitialised, and we
  shouldn't try to access it at all.
2017-08-15 17:26:46 +01:00
baldurk 5d100c2f62 Use glXGetProcAddress to fetch glXCreateContextAttribsARB. Refs #716
* Most functions we hook and then jump to the real driver we can fetch
  just with dlsym to the library, but the ARB context creation function
  is an extension and may not be directly exported.
* It's safe to call glXGetProcAddress(ARB) without a context current
  though and it's guaranteed to be directly exported, so we can use this
  to fetch the function if we don't find it with dlsym.
2017-08-15 17:17:55 +01:00
baldurk dc8a962eb6 Add handling for min precision in DXBC bytecode. Refs #720
* This includes ISG1 and OSG1 chunk types which have an extra enum on
  the end for the minimum precision type.
* Also add extra casing for min precision types (although anywhere they
  are on an externally-facing interface, they're not actually min
  precision).
2017-08-15 17:17:55 +01:00
baldurk cb52d2de6d Flush texture overlay cache whenever texture ID or type hint changes
* Even if the overlay didn't change, a new texture ID requires a re-draw
  of the overlay.
2017-08-15 17:17:55 +01:00
baldurk 58359e42ac Fetch SRV buffer format descriptor from declaration if not in SRV
* It's seemingly possible to bind a structured SRV with no format
  given, to a Buffer<float4> declaration in the shader. In this case
  we can't get the buffer stride/format type from the SRV itself so we
  have to go to what's declared in the reflection data itself.
2017-08-15 17:17:54 +01:00
baldurk eb7d343fbc Only add an extra access chain index before looping, not each time
* This would cause an extra index every time for every array element
  leading to far too long access chains for arrayed outputs longer than
  1 element.
2017-08-15 17:17:54 +01:00
baldurk a45f7f5ab0 Fix 32-bit compilation, _finitef is not available on x86 2017-08-14 19:09:53 +01:00
baldurk 74e989dbde Fix broken implementation of round_ne opcode rounding to nearest even 2017-08-14 16:47:25 +01:00
baldurk 110e510bd2 Don't try to break apart single float values that were merged 2017-08-14 16:47:20 +01:00
Ryan Huffman 2d8b2cf818 Update README.md to reflect OS support for Linux v0.91 2017-08-14 05:06:25 -07:00
baldurk 965d5bbcfb Mark v0.91 build 2017-08-14 12:57:14 +01:00
baldurk a658a1a38b Add a note about the v0.x branch to the top of CONTRIBUTING.md 2017-08-14 11:36:36 +01:00
baldurk 643edbe8a7 Fix cases where find results or file list were breaking
* The change to make the disassembly view not directly a child of a
  DockContent but instead a table layout (to add the disassembly type
  drop-down) were causing some casts of 'thing.Parent' to fail.
2017-08-14 11:18:11 +01:00
baldurk 11a47bfbe4 Don't set-up table layout with disasm type selector in debug case
* Otherwise it hangs around and breaks the layout when we don't want it
  to be visible at all
2017-08-14 10:54:19 +01:00
baldurk b7795f562d Search up the parent heirarchy for a DockContent
* Fixes a crash debugging a shader that has embedded source available
  (i.e. compiled with D3DCOMPILE_DEBUG).
2017-08-06 09:58:30 +01:00
baldurk c8dd41cdef Mark v0.90 build v0.90 2017-08-04 17:35:42 +01:00
baldurk 4b64521ff0 Add README mention of v0.x branch 2017-08-04 17:35:41 +01:00
baldurk 4d2da84ca4 Reference an explicit tag release of renderdoc's swig fork
* The tag is signed, and there's a release on that github repo with
  signatures for the source tarball/zip files
2017-08-04 17:35:32 +01:00
baldurk 703c6ba07b Enable CI builds for v0.x and v1.x branches, and disable master 2017-08-04 16:50:23 +01:00
baldurk 53b10cbe37 Add empty document statements for rdctype::str and member functions 2017-08-04 14:55:22 +01:00
baldurk e63a91d182 Fix assigning NULL instead of VK_NULL_HANDLE to vulkan handle 2017-08-03 20:49:13 +01:00
baldurk ca88810df3 Fix NULL-terminating serialise of rdctype::str adding 0 into elems
* The +1 for internal NULL terminator must be done internally, otherwise
  we end up with "foobar" being a 7-character string of "foobar\0". If
  this is then re-serialised we add more and more null terminators.
2017-08-03 20:18:15 +01:00
baldurk c898fc6d99 Add defaults for TextureSave struct to fix JPEG saving 2017-08-03 19:10:42 +01:00
baldurk c74c3d36bc Improve ResourceId repr/str handling, and add an int() handling 2017-08-03 19:10:41 +01:00
baldurk 09ba0b46af Add typemap for QPair 2017-08-03 17:57:24 +01:00
baldurk ee67b85b58 When we hit an exception, pass the line number of the top-of-stack
* This allows us to update the current line highlight before stopping.
2017-08-03 17:57:24 +01:00
baldurk 87ef595cce For a block invoke to another thread, safe and restore
* In future we could handle async exceptions by storing the exception
  information in a std::function derived object (instead of the separate
  ExceptionHandling that lives on the stack) and query it out in a new
  WaitForInvoke function maybe. Right now we just print the exception
  to the output log and abort the callback.
2017-08-03 17:57:23 +01:00
baldurk 1c93ee9441 If a python error has occurred, don't try to do any work, just bail 2017-08-03 17:57:22 +01:00
baldurk f41f6a2b66 Fix race condition accessing UI stuff on async loading thread 2017-08-03 17:57:22 +01:00
baldurk 86a9d70bb7 Only remover disassembly toolbar when debugging, not when viewing shader 2017-08-03 17:57:21 +01:00
baldurk e7d092cdaf Check format/sample support for creating MSAA <-> Array renderpasses 2017-08-03 17:57:16 +01:00
baldurk 5c934f564e Don't create the AMD counters while capturing 2017-08-02 21:05:04 +01:00
baldurk 0d1c9c39fe Remove the D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE flag on replay
* This flag is purely an optimisation, it's never invalid to remove it.
2017-08-02 21:04:51 +01:00