Commit Graph
8677 Commits
Author SHA1 Message Date
Julian MederandBaldur Karlsson bf17650ace Keep DX12 descriptor heaps alive until deferred copy/write flush. 2019-02-28 16:45:33 +00:00
tuxerrandBaldur Karlsson c6edcf9a38 add support for VK_EXT_fragment_density_map 2019-02-28 00:10:03 +00:00
baldurk d80c5973dd Only print nvapi disabled warnings a few times before silencing 2019-02-27 20:49:20 +00:00
baldurk 2cda7f8af0 Fix access to Qt containers that need int indexes 2019-02-27 14:50:27 +00:00
Denis Rutkovandbaldurk 8d8538a068 Fix another issue with MSAA depth buffer copying during D3D12 replay 2019-02-27 14:39:57 +00:00
baldurk 45a9fc97ae Fix int32_t/size_t type matching in rdcarray functions 2019-02-27 14:38:34 +00:00
Denis Rutkovandbaldurk 5fb59defcb Fix reading initial state for upload heap buffers. 2019-02-27 13:51:27 +00:00
dendron2000andbaldurk 4846221794 Fix copying depth data from depth stencil with MSAA in DX12. 2019-02-27 13:51:27 +00:00
dendron2000andbaldurk 0c1b6439c4 Fix reading back initial buffer/texture states in D3D12. 2019-02-27 13:51:27 +00:00
dendron2000andbaldurk 9bf50e124a Fix compiling without global optimization. 2019-02-27 13:51:27 +00:00
baldurk f70de276e6 Use size_t in rdcarray
* This means that allocating >2GB in a bytebuf doesn't crash. There was no good
  reason for the int32_t - that dates back to the earliest interop structs
  defined for communication with .NET
2019-02-27 13:50:05 +00:00
baldurk 64062ec2c6 Apply luminance/alpha emulation to glTextureView 2019-02-27 13:50:05 +00:00
baldurk f3593c970f Don't crash or bind invalid vertex buffers in GL mesh render
* This can happen after clearing the PostVS cache, when editing a shader
2019-02-27 13:50:05 +00:00
baldurk 308474091a Follow-up to previous fix, for WrappedID3D12Device::CreateHeap1 2019-02-27 13:50:05 +00:00
baldurk 829e494e5e Silently skip out of bounds declared vertex buffers. Closes #1287
* We assume that these vertex buffers are unused in any actual declared inputs
  so they can safely be treated as empty.
2019-02-27 13:50:05 +00:00
Julian MederandBaldur Karlsson 5878787daf Fix WrappedID3D12Device::CreateHeap worngly returning E_NOINTERFACE. 2019-02-26 17:00:15 +00:00
baldurk 793ea24f9d Clear dlerror for code that's aggressive with error checks. Close #1279 2019-02-25 21:04:09 +00:00
baldurk 8ae9ccdd7f Check descriptor writes for validity before updating in PostVS fetch
* This can happen for push descriptors that are declared but never used.
2019-02-25 15:31:43 +00:00
baldurk 2dc37ac232 Handle creating backbuffer views with non-NULL non-typed descriptor
* We already handle the case where e.g. D3D12_RENDER_TARGET_VIEW_DESC is NULL
  and we need to substitute in a typed descriptor for backbuffers. We didn't
  handle the case where
2019-02-25 15:31:43 +00:00
tabi.katalinandBaldur Karlsson 2507532623 Fix GLES shader compile errors
Detected two shader compile errors while replaying GLES apps:
1. „#extension directive must occur before any non-preprocessor token” -  Fix the order of precisions and extensions in the shader code.
2. „extension 'GL_OES_texture_cube_map_array' is not supported”  - Do not add extensions if they are actually not supported. TEXTURE_CUBE_MAP_ARRAY was added to GLES 3.2 so   GL_OES_texture_cube_map_array and GL_EXT_texture_cube_map_array are no longer used.
2019-02-25 11:30:25 +00:00
baldurk e9e1d91b34 linux compile fix 2019-02-22 22:40:33 +00:00
baldurk ec58308207 With GL we can have binding aliasing. Keep searching for a used binding
* If we have multiple bindings aliasing the same slot, we want to keep going if
  the first one we find is unused to see if the slot is aliased with one that
  *is* used. We'll still use the last unused one if we don't find any used at
  all (and with aliasing any one we pick is as valid as another).
2019-02-22 14:10:25 +00:00
baldurk a1d1ccea62 Update glslang to a51d3d9f223361165127ded3cd2e59d81e22d91f 2019-02-22 13:56:37 +00:00
baldurk 73d51637c4 Handle querying for ID3D11Texture2D1 and ID3D12Resource1. Closes #1276 2019-02-22 13:49:58 +00:00
baldurk 95570e5a28 Don't allocate empty memory if no index buffer is bound 2019-02-22 13:49:58 +00:00
Tobias KunickeandBaldur Karlsson f42a774966 fixed file open dialog 2019-02-22 08:31:09 +00:00
Benson JoerisandBaldur Karlsson 47b351c566 Refactor GetByteSize and GetPlaneByteSize using GetBlockShape
This eliminates a substantial amount duplicate code between `GetByteSize` and
`GetBlockShape`.

Also added explicit tests of `GetPlateByteSize` independent of `GetByteSize`.
2019-02-21 21:58:26 +00:00
baldurk 0f1e1faf48 Erase elements that should not be serialised to avoid crashes 2019-02-20 13:53:41 +00:00
baldurk 98b8ff1dd7 Don't use GPUCounter directly in public interface for python
* Python throws an error when enums don't have a pre-existing value, which can
  happen for GPUCounter due to hardware specific counters. Instead just declare
  as int and allow casting back and forth for values that are pre-existing.
2019-02-20 13:53:20 +00:00
baldurk e01bc4c734 Implement untested support for D3D12.3/D3D12.4 interfaces. Closes #1268
* Most of the interfaces are not supported - protected sessions, raytracing,
  etc.
* We also split apart the 1/2/3/4 wrapped implementations to avoid uber files.
2019-02-19 17:54:53 +00:00
baldurk 24abd885ab Fix UUID check for ID3D12Fence1 2019-02-19 17:54:53 +00:00
baldurk b14e3f2ef9 Fix valgrind issues found running unit tests
* GLContextTLSData default constructor should be initialised.
* Add some missing deletes in shader reflection
* Call freeaddrinfo after getaddrinfo
* Don't leak if we're reserving 0 bytes in rdcstr over the top of an already
  empty rdcstr
2019-02-19 17:54:53 +00:00
Benson JoerisandBaldur Karlsson cb26815570 Fix bug in Intervals<T>::update()
When the interval being updated went all the way to the end of the last
interval (UINT64_MAX), `update` would call `mergeLeft` on the `end()` interval.
This would cause `mergeLeft` to dereference an invalid iterator.

Also added a quick return for updating empty intervals, and unit tests to verify
correct handling of empty intervals, which were run both with and without this
optimization.

Also removed some unnecessary asserts that likely called many times. These
asserts could only fail if there was a bug in the `Intervals<T>` implementation,
which should be caught by the unit tests.
2019-02-19 17:54:41 +00:00
Benson JoerisandBaldur Karlsson 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 JoerisandBaldur Karlsson 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 JoerisandBaldur Karlsson 465596e563 Serialise ref types for Vulkan device memory ranges 2019-02-18 17:33:59 +00:00
Benson JoerisandBaldur Karlsson 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 JoerisandBaldur Karlsson 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