Commit Graph

13338 Commits

Author SHA1 Message Date
baldurk ea35f0df0c texture formats that aren't matrices shouldn't be marked row major 2022-08-03 17:44:11 +01:00
baldurk db1f17476e Track variables being changed across steps/runs
* This allows us to more accurately display those that have been modified since
  the last step, when a source-level step covers multiple instruction-level
  steps.
* We also do our own sorting of source variables based on how recently they were
  updated. This applies in both directions, so stepping backwards and
  'reversing' a variable change will also count as a recent update.
2022-08-03 17:44:11 +01:00
baldurk 935fa49c98 Store source vars data per-instruction rather than per-state
* Since the source vars data doesn't change for a given instruction, we can pre-
  calculate it and save time on re-calculating per-state.
* Note callstack *can* change per-state on SPIR-V where the same instruction can
  be reached by different flow paths, so the callstack remains part of the per-
  state data.
2022-08-03 17:44:11 +01:00
Robin Liu b06df5dd47 Supress shadow warning for ggp platform. 2022-08-03 17:43:35 +01:00
Robin Liu 80935c1657 Fix compilation warnings for ggp platform.
This fix the warning about comparison of integers of different signs.
2022-08-03 17:43:35 +01:00
Remi Palandri 6b0c3a51ce remove unecessary log entries in vk_core 2022-08-03 10:32:32 +01:00
baldurk d59e0bd70a Only ignore files with no filename and no contents. Closes #2673 2022-08-03 10:30:22 +01:00
baldurk 423da6b377 Clamp invalid descriptor indices in D3D12 to avoid writing out of bounds 2022-08-01 20:40:03 +01:00
baldurk f78570dcb3 Fix some D3D12 debug warnings 2022-08-01 20:40:03 +01:00
baldurk 65581ca322 Subtract per-draw index byte offset from index buffer size 2022-08-01 20:40:03 +01:00
baldurk 50919f5cfa Fix wrong API being used for cloned child GL contexts 2022-08-01 20:40:02 +01:00
Jake Turner b1b17efb9c Support dummy Wrapped Metal objects for replay
Metal replay serialization uses dummy wrapped metal objects ie.

case MetalChunk::MTLLibrary_newFunctionWithName:
  return m_DummyReplayLibrary->Serialise_newFunctionWithName(ser, NULL, NULL);
case MetalChunk::MTLRenderCommandEncoder_setRenderPipelineState:
  return m_DummyReplayRenderCommandEncoder->Serialise_setRenderPipelineState(ser, NULL);
case MetalChunk::MTLBlitCommandEncoder_endEncoding:
  return m_DummyReplayBlitCommandEncoder->Serialise_endEncoding(ser);

Reuse the same constructor with NULL real metal object instead of making a new constructor
2022-08-01 12:35:59 +01:00
Jake Turner 32d4856a0c Metal-CPP: correct NS::View::setLayer parameter
Change parameter to be "CA::Layer*" instead of "void*"
2022-08-01 12:35:18 +01:00
Jake Turner 92fdfa097f Remove unused ObjC helper methods
This helper method is now implemented by Metal-CPP
void ObjC::Get_defaultLibraryData(bytebuf &buffer);
2022-08-01 12:35:18 +01:00
Jake Turner 4e3d43bb36 Use NS::Bundle* & NS::Data* API instead of helpers
Replaced call to ObjC::Get_defaultLibraryData() by using NS::Bundle* and NS::Data* methods directly from C++
2022-08-01 12:35:18 +01:00
Jake Turner 02a1ac8192 Metal-CPP: extend NS:Data* & NS::Bundle* methods
Add:
NS::String* NS::Bundle::pathForResource(const class String* pName, const class String* pExt) const;
NS::Data *NS::Data::dataWithContentsOfFile(const String* path);
const void* NS::Data::bytes() const;
2022-08-01 12:35:18 +01:00
Jake Turner fdb5aade87 Remove unused ObjC helper methods
These helper methods are now implemented by Metal-CPP

Deleted:
MTL::Texture *ObjC::Get_Texture(MTL::Drawable *drawable);
CA::MetalLayer *ObjC::Get_Layer(MTL::Drawable *drawable);
void ObjC::CAMetalLayer_Set_drawableSize(void *layerHandle, int w, int h);
void ObjC::CAMetalLayer_Set_device(void *layerHandle, MTL::Device *device);
void ObjC::CAMetalLayer_Set_pixelFormat(void *layerHandle, MTL::PixelFormat format);
CA::MetalDrawable *ObjC::CAMetalLayer_nextDrawable(void *layerHandle);
void CALayer_GetSize(void *layerHandle, int &width, int &height);
2022-08-01 12:35:18 +01:00
Jake Turner bb87da9dbd Use CA::MetalDrawable* API instead of ObjC helpers 2022-08-01 12:35:18 +01:00
Jake Turner e938d4eea2 Metal-CPP: extend CA::MetalLayer* methods
Added:
void setDevice(const MTL::Device *pDevice);
void setPixelFormat(const MTL::PixelFormat format);
void setDrawableSize(const CGSize size);
CA::MetalDrawable* nextDrawable();
CGFloat contentsScale() const;
CGRect bounds() const;
2022-08-01 12:35:18 +01:00
baldurk 44a1de01d4 Bump version to v1.22 2022-07-28 17:52:50 +01:00
baldurk 98a93408c6 Handle subpasses with unused color attachments in pixel history v1.21 2022-07-27 14:56:43 +01:00
baldurk a33eb5fcb1 Allow reinterpreting formats of constant blocks that have bytes backing
* Even without a true buffer, as long as we have access to the bag of bytes and
  a non-opaque layout we can allow reinterpreting.
2022-07-25 10:08:59 +01:00
baldurk 5d51b524c6 Fix interpreting and declaring buffer formats that include pointers 2022-07-25 10:08:59 +01:00
Jake Turner ce60dd40b1 Tweak to compile with Apple Clang v13.0
macos-11 Apple Clang does not support -Wno-unused-but-set-variable

To fix CI

error: unknown warning option '-Wno-unused-but-set-variable'; did you mean '-Wno-unused-const-variable'? [-Werror,-Wunknown-warning-option]
2022-07-22 18:45:45 +01:00
Jake Turner f6baad2a0f Update mac CI to use macos-11 instead of 10.15
To fix Mac CI

The macOS-10.15 environment is deprecated, consider switching to macos-11(macos-latest), macos-12 instead. For more details see https://github.com/actions/virtual-environments/issues/5583
2022-07-22 18:45:45 +01:00
Jake Turner 529ed4ffe8 Fix new compile errors in Metal EndFrameCapture
Enabling -Wshorten-64-to-32 PR overlapped with this code landing
2022-07-22 18:45:45 +01:00
baldurk 6e33222115 Fix missing documentation type declaration 2022-07-22 18:45:20 +01:00
baldurk c98b16fd8c Fix compile warnings 2022-07-22 18:16:09 +01:00
baldurk 0b187934de Track bytes written for hidden SO counters. Closes #2662
* The D3D11 spec is unclear but checking sources including D3D11On12 it looks
  like the defined behaviour for SO counters is to calculate the number of bytes
  written and divide that by the VB stride on draw.
* Old captures can't be updated to work with this because the stride is unknown,
  but new captures will work correctly as well as any data that is stream'd out
  mid-capture.
2022-07-22 16:10:59 +01:00
baldurk aafd0ec788 Fix a bug with variables in loop coming into existence multiple times 2022-07-22 16:10:59 +01:00
baldurk e6100167aa Don't track first pointer writes when we have debug info 2022-07-22 16:10:59 +01:00
baldurk a967805a24 Don't use StringFormat for SPIR-V GetRawName 2022-07-22 16:10:59 +01:00
baldurk fda5c4819a Scroll shader viewer to entry point file & line using debug info 2022-07-22 16:10:59 +01:00
baldurk c053912608 Add explicit DXIL shader encoding 2022-07-22 16:10:59 +01:00
Jake Turner ac719cecd8 Fix Clang 14 compile warning
Disable "-Wtautological-constant-out-of-range-compare" when compiling "3rdparty/compressonator/BC6_Encode_kernel.cpp"
2022-07-21 11:49:49 +01:00
Jake Turner 240fcf3373 Disable -Wshadow & -Wshorten-64-to-32 for ihv/arm
Error triggers in 3rdParty code ie.

renderdoc/driver/ihv/arm/official/lizard/include/lizard/lizard_counter.hpp:66:5: error: declaration shadows a variable in namespace 'lizard' [-Werror,-Wshadow]
2022-07-21 11:49:49 +01:00
Jake Turner cb2e4f1253 Fix "-Wshorten-64-to-32" errors in Apple code
Also rename AndroidCallstack -> AppleCallstack in apple_callstack.cpp
2022-07-21 11:49:49 +01:00
Jake Turner 9ab43e6c5a Fix "-Wshorten-64-to-32" errors in socket APIs
socket APIs take an int for the socket file descriptor
send() and recv() return ssize_t not int
bind() takes "socklen_t" for the length of the sockaddr structure
2022-07-21 11:49:49 +01:00
Jake Turner 8c37978212 Fix "-Wshorten-64-to-32" error with ftell() use
ftell() returns a long not an int
2022-07-21 11:49:49 +01:00
Jake Turner fb04266122 Disable Clang "-Wshorten-64-to-32" for files
3rdParty source files and some renderdoc files which include 3rdparty header files

Disable "-Wshorten-64-to-32" for the whole of qrenderdoc render_python.cxx triggers the warning
2022-07-21 11:49:49 +01:00
Jake Turner 0d02425a87 Enable Clang warning "-Wshorten-64-to-32" 2022-07-21 11:49:49 +01:00
Jake Turner 955695d948 Fix "-Wshadow" errors in Apple code
WrappedMTLDevice CaptureCmdBufCommit() & CaptureCmdBufEnqueue() rename parameter "record" to "cbRecord"
2022-07-21 11:49:49 +01:00
Jake Turner 062bc2b470 Fix "-Wshadow" error on "read" variable 2022-07-21 11:49:49 +01:00
Jake Turner 1622667bf8 Disable Clang "-Wshadow" for specific files
3rdParty source files and some renderdoc files which include 3rdparty header files

Disable "-Wshadow" for the whole of qrenderdoc render_python.cxx triggers the warning
2022-07-21 11:49:49 +01:00
Jake Turner d7f286fb7d Enable Clang warning "-Wshadow" 2022-07-21 11:49:49 +01:00
Jake Turner 97efa7cf04 Capture support for the presented MTLDrawable
Generate the capture thumbnail image from the presented `MTLTexture`
Serialize the capture `PresentedImage` ID in the `CaptureEnd` chunk.
2022-07-21 10:32:32 +01:00
Jake Turner 9e8be2400f Deleted ObjC::CAMetalLayer_Set_framebufferOnly
Use the metal-cpp implementation instead of the helper version
2022-07-21 10:32:32 +01:00
Jake Turner 8a0af20c1e metal-cpp : add CA::MetalLayer::setFramebufferOnly
Minor code formatting tidy on a couple of previous changes to better match the surrounding code style
2022-07-21 10:32:32 +01:00
Nicola Cerone 43462ea3c9 Fix arcball navigation by updating the basis matrix. 2022-07-20 10:38:38 +01:00
baldurk 3b00cf247e Fix crash when structured exporting on D3D 2022-07-19 10:11:31 +01:00