Commit Graph
4235 Commits
Author SHA1 Message Date
Matthäus G. Chajdas cb84ff695e Add UUIDs to counter descriptors to allow uniquely identifiying them.
For built-in types, use a hard-coded GUID and just modify the last 32-bits; for the AMD counters, we just hash the description/name for now.
2017-08-24 13:21:05 +01:00
Matthäus G. Chajdas 72ef43b969 Add a new Uuid type to store unique identifiers. 2017-08-24 13:21:05 +01:00
Matthäus G. Chajdas 7d15d75638 Don't fetch AMD counters when no AMD counter is required. 2017-08-24 13:21:03 +01:00
Matthäus G. Chajdas 29376f34cc Add a performance counter selection dialog. 2017-08-24 13:21:01 +01:00
baldurk 40a0272a3e Remove use of bool32 replay API type&optimise mem layout in some structs 2017-08-24 10:44:45 +01:00
baldurk e85c8d19bf Combine 'special' with 'specialFormat' as single resource format type
* There was no good reason to have a flag indicating if the special
  format was valid or not. Now it's a single enum, with a value
  'Regular' indicating that the compCount/compWidth/compType fully
  describe the format itself.
* This makes code patterns easier as you no longer need to check for
  special then check for specialFormat, you can just test the type
  directly.
2017-08-24 10:37:16 +01:00
baldurk b55ff14242 Use nested ResourceFormat in MeshFormat struct.
* The old C# interop didn't support this for structs going from the UI
  to the core module.
2017-08-21 18:14:44 +01:00
baldurk a1369f05ba Change home vk layer path to use $XDG_DATA_HOME if present. Refs #723 2017-08-21 13:43:00 +01:00
baldurk 9b4ee72af6 Pass pipeline state around by reference instead of copying by value 2017-08-18 19:37:18 +01:00
baldurk 8ae1c650b0 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 19:37:17 +01:00
baldurk 981436b75f Don't pass around string name of ResourceFormat, request it when needed 2017-08-18 19:37:16 +01:00
baldurk 2053f21462 Move android code into separate file for organisation's sake 2017-08-18 19:37:15 +01:00
baldurk bc98513088 Remove C entry points for C++ API - only used by P/Invoke C# access 2017-08-18 19:37:14 +01:00
baldurk 4c24b0f28f Remove use of ToQStr to convert rdctype::str to QString 2017-08-18 14:13:22 +01:00
baldurk b637fe78de 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:09:36 +01:00
baldurk 3c8ca468d7 Commit a whitespace change that VS keeps making to vcxproj
* This is left over from some hand edit of the vcxproj I guess which
  didn't get caught at the time.
2017-08-17 18:09:35 +01:00
baldurk e77f3ad8d1 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:09:35 +01:00
baldurk f442543ab5 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:04 +01:00
baldurk f4951e28a4 Apply barriers to ALL_COMMANDS_BIT (not optimal, but that's fine) 2017-08-17 13:01:00 +01:00
baldurk ef84f494a2 Add a macro that enables qt-compatibility in the renderdoc replay API
* This will be used to remove the ToQStr everywhere (where it's not
  used for actual stringification of enums/structs)
2017-08-16 18:28:11 +01:00
baldurk b70e897838 Change workaround for visual assist bug with large raw strings in macros
* The bug seems to happen if two raw strings concatenated together are
  large enough, so instead we pass them as separate parameters to a
  different macro then concatenate them inside the macro.
2017-08-16 16:29:56 +01:00
baldurk fbc0ccce3f 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 16:24:43 +01:00
baldurk cdf57c8634 Re-sort GL bindings every time to match current uniform vals. Refs #711
* The comment in the commit goes into more details, but basically this
  sacrifices some confusion on the part of people who change uniform
  values for bindings on the fly, in favour of the majority who treat
  it as constant and don't make use of this mutable mapping that GL
  allows for.
2017-08-16 13:27:47 +01:00
baldurk 34d0fb3fa8 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:36:29 +01:00
baldurk 65303d8590 Don't use RTLD_NEXT, use libGLdlsymHandle which is more accurate
* The value is initialised to RTLD_NEXT, but if we get a real lib
  handle then we should prefer to use that.
2017-08-15 17:36:28 +01:00
baldurk 794044e5be 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:36:28 +01:00
baldurk 3587411c4a 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:36:28 +01:00
baldurk cfbaf68942 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-08-15 17:36:28 +01:00
baldurk e39905a779 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:36:28 +01:00
baldurk 3fc6dc8f7d 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:36:28 +01:00
baldurk 316c714009 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:36:27 +01:00
Cody Northrop 7144ba1652 android: Rename function that pushes layer to installed application 2017-08-15 09:36:20 -07:00
Cody Northrop fb8eef23d0 android: Improve workflow on devices with root
During initial scan of application, detect if root access is available
and track it.  If user later selects "Click here for ways to fix this".
display a new dialogue that offers to push the layer directly.

If pushing fails, fall back to production dialogue.

Also add a new persistent setting to enable automatic layer pushing.
2017-08-15 09:36:20 -07:00
Cody Northrop 6c40e4e651 android: Add function to push layer directly to application 2017-08-15 09:36:20 -07:00
Cody Northrop 5c99b4fe15 android: Add function to detect root access 2017-08-15 09:36:20 -07:00
baldurk f5b6b61b4b Fix 32-bit compilation, _finitef is not available on x86 2017-08-14 19:09:38 +01:00
baldurk 2b01ee78f2 Remove C# renderdocui UI. Add qrenderdoc to visual studio solution 2017-08-14 18:09:59 +01:00
baldurk c812dfec07 Fix broken implementation of round_ne opcode rounding to nearest even 2017-08-14 18:09:58 +01:00
baldurk 9f034f9faf Don't try to break apart single float values that were merged 2017-08-14 18:09:58 +01:00
Janos Pantos ebe25d9472 Add missing aliases for supported GLES extension functions
* Add missing aliases for
** GL_EXT_robustness
** GL_EXT_separate_shader_objects
** GL_KHR_debug
* Fix a typo in the name of glDrawElementsInstancedBaseVertexOES
2017-08-14 10:01:09 -07:00
Janos Pantos 4e800c1e48 Remove an inappropriate flag from eglCreateContext 2017-08-14 10:01:09 -07:00
Janos Pantos 387ab74561 Don't use GetBaseFormat for compressed formats in GetTextureData 2017-08-14 10:01:09 -07:00
Janos Pantos 0d8e1feb16 Fix invalid operation errors for some glBind* calls
Names starting with reserved gl_ prefix are not accepted by
glBindAttribLocation and glBindFragDataLocation functions.
2017-08-14 10:01:09 -07:00
Janos Pantos 625b54e233 Add some missing GLES extension names and aliases
Extend supported GLES extension list and add missing aliases for the
following extensions:
* GL_EXT_texture_storage
* GL_EXT_texture_view
* GL_OES_draw_buffers_indexed
* GL_OES_texture_cube_map_array
* GL_OES_texture_view
2017-08-14 13:40:58 +01:00
Janos Pantos 3acb027001 Add support for GL_{OES|NV}_viewport_array extensions 2017-08-14 13:40:58 +01:00
baldurk e5e0b7af3b Bump version number for future v1.0 build 2017-08-04 17:35:48 +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