[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[Git][xorg-team/app/renderdoc][debian/master] 300 commits: Bump version to v1.21



Title: GitLab

Jordan Justen pushed to branch debian/master at X Strike Force / app / renderdoc

Commits:

  • e89cee8f
    by baldurk at 2022-05-27T17:10:54+01:00
    Bump version to v1.21
    
  • 49df2e44
    by baldurk at 2022-05-30T11:18:31+01:00
    Include a few more things in verbose command recording logs
    
  • b3e8bdb0
    by baldurk at 2022-05-30T15:58:30+01:00
    Only show base EID not EID range when exporting actions
    
  • 6d7d4829
    by baldurk at 2022-05-30T17:09:17+01:00
    Fix docs build on sphinx 5
    
  • f01dfbec
    by baldurk at 2022-05-31T11:26:59+01:00
    Add a python extension function to access picked location. Refs #2065
    
  • 77232e02
    by baldurk at 2022-05-31T13:06:42+01:00
    Fix lookup of HLSL direct cbuffer variable references
    
  • c3dd785a
    by baldurk at 2022-06-01T21:05:37+01:00
    Don't add source files to SPIR-V reflection with no filename
    
  • 3059cc61
    by baldurk at 2022-06-02T17:00:52+01:00
    Fix error code for linux programs failing to run
    
  • fcc7eada
    by baldurk at 2022-06-02T17:01:48+01:00
    Ignore whitespace when matching variable tooltip expressions
    
  • 21d4d4c0
    by baldurk at 2022-06-02T17:02:30+01:00
    Fix debugging of SPIR-V with offsets in image sampling operations
    
  • c625f9db
    by baldurk at 2022-06-02T18:13:29+01:00
    Add debug option for showing DebugValue opcodes
    
  • 2a97762b
    by baldurk at 2022-06-02T18:16:30+01:00
    Handle indexes and partial source mapping in SPIR-V debug info
    
  • c4b4c528
    by baldurk at 2022-06-02T18:18:58+01:00
    Add a testing option to step to DebugValue instructions
    
  • 958e568c
    by Jake Turner at 2022-06-06T18:12:53+01:00
    Added wrapped MTLRenderCommandEncoder
    
    Implemented capture serialisation for APIs:
    MTLCommandBuffer::renderCommandEncoderWithDescriptor
    MTLRenderCommandEncoder::setRenderPipelineState
    MTLRenderCommandEncoder::setFragmentTexture
    MTLRenderCommandEncoder::setViewport
    MTLRenderCommandEncoder::drawPrimitives
    MTLRenderCommandEncoder::endEncoding
    
    Serialisation for helper types:
    MTL::PrimitiveType
    MTL::LoadAction
    MTL::StoreAction
    MTL::StoreActionOptions
    MTL::ClearColor
    MTL::Viewport
    MTL::MultisampleDepthResolveFilter
    MTL::MultisampleStencilResolveFilter
    MTL::SamplePosition
    MTL::RenderPassDescriptor
    MTL::RenderPassAttachmentDescriptor
    MTL::RenderPassColorAttachmentDescriptor
    MTL::RenderPassDepthAttachmentDescriptor
    MTL::RenderPassStencilAttachmentDescriptor
    MTL::RenderPassSampleBufferAttachmentDescriptor
    
  • c73c54dd
    by baldurk at 2022-06-06T18:35:29+01:00
    Be more informative with 'capture incompatible' error messages on vulkan
    
  • 3e9a7207
    by baldurk at 2022-06-06T18:35:29+01:00
    Update to latest VK and SPIR-V headers
    
    * This also adds support for VK_KHR_fragment_shader_barycentric as a mostly in-
      place upgrade from the NV extension
    
  • e50e114c
    by baldurk at 2022-06-06T18:35:29+01:00
    Show error/unavailable status for postvs data in mesh view. Refs #2595
    
  • c81a5223
    by baldurk at 2022-06-07T12:19:50+01:00
    Fix entry-point remapping when editing compute shaders on vulkan
    
  • dc7d79a5
    by baldurk at 2022-06-07T21:05:06+01:00
    Resetting command pools should free in-flight recording pages
    
    * Command buffers that have grabbed pages in their allocators should have those
      pages freed if the pool is reset and the command buffer is never ended.
    
  • 5ff8f2c4
    by baldurk at 2022-06-07T22:22:02+01:00
    Fix state inheritance properly for library pipelines
    
  • a68f9ba8
    by baldurk at 2022-06-07T22:31:02+01:00
    Don't use dynamic rendering when we replace with a fixed renderpass
    
  • ed9ac9f7
    by baldurk at 2022-06-09T16:56:02+01:00
    Add a hack flag to allow subgroup bitwise or
    
  • 1e8425c3
    by baldurk at 2022-06-14T18:05:07+01:00
    Refactor handling of device/window pairs and overlay text
    
  • 7142bf16
    by baldurk at 2022-06-14T18:36:33+01:00
    Handle non-infinite arrays of UBOs in vulkan shader debugging
    
  • 85af87c2
    by baldurk at 2022-06-14T20:38:43+01:00
    Fix unused variable warning
    
  • 22b22728
    by Jake Turner at 2022-06-15T13:02:27+01:00
    Added wrapped MTLBuffer
    
  • 31b97ab0
    by Jake Turner at 2022-06-15T13:02:27+01:00
    Updated TODO: about BinaryArchive & DynamicLibrary
    
    They will both need to be wrapped.
    When WrappedMTLBinaryArchive and WrappedMTLDynamicLibrary exist then can serialize:
    binaryArchives
    vertexPreloadedLibraries
    fragmentPreloadedLibraries
    
  • 15a99155
    by baldurk at 2022-06-16T15:53:49+01:00
    Fix checks for individual features in EXT dyn state 2
    
  • f6ac09c4
    by baldurk at 2022-06-16T15:53:49+01:00
    Workaround intel mesa issue reading invalid sample locations
    
  • 4d8fdf4e
    by baldurk at 2022-06-16T15:53:49+01:00
    Use inline asm for debugbreak on linux to remove stack frames
    
    * raise() adds several stack frames in debug builds, and even an inline function
      will too, regardless of always_inline status.
    
  • 9f66c125
    by baldurk at 2022-06-16T15:53:50+01:00
    Add color attachment usage for MSAA targets for discard patterns
    
    * In most cases we expect this to already be there, and if not it likely will
      not penalise anything in the driver since MSAA is designed for rendering to.
    
  • fc39299d
    by baldurk at 2022-06-16T15:53:50+01:00
    Don't require GL_OVR_multiview2 when GL_OVR_multiview is enough
    
    * This is also all we check for in code.
    
  • 59804c1d
    by baldurk at 2022-06-16T15:53:50+01:00
    When using GLES on desktop, use same API for child context. Closes #2612
    
  • 0fce39ff
    by baldurk at 2022-06-16T15:53:50+01:00
    Implement workaround for broken occlusion queries on Intel. Closes #2591
    
    * If a draw has no effects (color mask writes off, no depth attachment) then
      Intel will not return proper occlusion query results. Forcibly patching in a
      storage write works around the problem.
    
  • 1eee00f0
    by baldurk at 2022-06-16T16:30:00+01:00
    Remove unnecessary sRGB conversions
    
  • 6a006625
    by baldurk at 2022-06-17T10:46:14+01:00
    Ignore rasterizerDiscardEnable == true if it is dynamic. Closes #2617
    
    * Normally we have to ignore subsequent states as potentially garbage pointers
      if discard is enabled, but when it's dynamic state we have to ignore its
      valid.
    
  • 825f1c69
    by Jason Chen at 2022-06-17T16:09:22+01:00
    Fix typo
    
  • 623cd019
    by Danylo Piliaiev at 2022-06-17T17:26:16+01:00
    Do not use inline asm for debugbreak on non i386/x86_64 targets
    
    Fixes compilation on non i386/x86_64 Linux targets.
    
    Don't use arch specific assembly for other architectures because
    in most cases it breaks gdb ability to do next step.
    
    Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com>
    
  • fd2ae37a
    by baldurk at 2022-06-17T17:27:30+01:00
    Test overlay rendering with separable shader programs
    
  • 46a1f904
    by baldurk at 2022-06-17T17:27:30+01:00
    Disable depth bounds test when rendering GL overlay
    
  • ef003ec8
    by baldurk at 2022-06-17T17:27:30+01:00
    Test depth bounds serialisation on GL
    
  • 20b496fc
    by baldurk at 2022-06-17T17:27:30+01:00
    Add test of integer bare uniforms on GL
    
  • 71d7f000
    by baldurk at 2022-06-17T17:27:30+01:00
    Add test for D3D12 texture contents including with DENY_SHADER_RESOURCE
    
  • 4a0bc691
    by baldurk at 2022-06-17T17:27:30+01:00
    Add test that solid/lit rendering works on points and lines
    
  • 95c8a3f4
    by baldurk at 2022-06-17T17:27:30+01:00
    Test swizzles of UAV reads
    
  • db06aaa2
    by baldurk at 2022-06-17T17:27:30+01:00
    Test that recreating renderbuffers doesn't leak resources
    
  • e15df3a7
    by baldurk at 2022-06-17T17:27:30+01:00
    Test that glBindProgramPipeline(0) generates no errors
    
  • 028d71fc
    by baldurk at 2022-06-17T18:13:06+01:00
    Remove DENY_SHADER_RESOURCE flag in all resource creation functions
    
  • 59b43510
    by William Hjelm at 2022-06-17T19:47:21+01:00
    Fix typo in in intercepted CreateCommittedResource
    
  • f5a2bae2
    by Jake Turner at 2022-06-20T10:12:40+01:00
    Set the enable state for Save, Delete actions
    
    Disable the actions when no captures are selected
    
  • c6fff16b
    by Jake Turner at 2022-06-20T10:14:34+01:00
    Reserve Chunk for modifying MTLBuffer contents
    
    MTLBuffer_InternalModifyCPUContents
    
  • e7669288
    by Jake Turner at 2022-06-20T10:14:34+01:00
    DoStringise for MetalChunk
    
  • 0431e411
    by baldurk at 2022-06-20T16:47:50+01:00
    Handle D3D12 renderpass resolves. Closes #2622
    
  • 183f50bf
    by baldurk at 2022-06-20T16:47:50+01:00
    Fix patching of qt dependencies
    
  • 687c11ba
    by baldurk at 2022-06-20T16:47:50+01:00
    Fix handling of 64-bit integer vertex attributes in mesh output fetch
    
  • e903589e
    by baldurk at 2022-06-20T17:20:51+01:00
    Fix bitcast between types of different column counts
    
  • 2020a71c
    by baldurk at 2022-06-21T12:51:31+01:00
    Account for flip in face culling winding for GL clip origin
    
    * The GL clip origin when changed from lower left to upper left will also invert
      the face culling sense. This is deliberate to counteract the fact that
      otherwise CW wound triangles would be CCW wound, so the flip means that if
      GL_CCW is the front face state and back faces are culled, then visibly CCW
      wound triangles will be culled.
    
  • 7d9a1a05
    by baldurk at 2022-06-21T15:31:41+01:00
    Correctly handle programs that don't create graphics queues
    
  • 86845853
    by Orson Baines at 2022-06-22T13:17:24+01:00
    Add WIP OpenGL Pixel History code for PostMod pixel value
    
    The OpenGL Pixel History feature is hidden behind the OpenGL_PixelHistory config toggle.
    For now, we only run an occlusion query and then replay the events
    and read back the pixel values to return to the UI.
    
  • 45ac6242
    by Orson Baines at 2022-06-22T13:17:24+01:00
    OpenGL Pixel History address PR feedback
    
    - add missing destroy resources call
    - restore framebuffer binding after replaying draw
    - disable more state bits for occlusion querying
    - read back query results after executing all queries
    
  • d1dcb81a
    by Orson Baines at 2022-06-22T13:17:24+01:00
    use WrappedOpenGL::SetFetchCounters in occlusion query
    
  • 8838a878
    by baldurk at 2022-06-22T20:04:42+01:00
    Show the current event in texture viewer usage context menu
    
  • 2bf91773
    by baldurk at 2022-06-22T20:04:42+01:00
    When using debug info, don't use first store as variable live point
    
    * We already will have a live point when the variable is declared
    
  • c8f67313
    by baldurk at 2022-06-22T20:04:42+01:00
    Fix handling of local variable mappings around function entry & calls
    
  • 20f42fea
    by baldurk at 2022-06-22T20:04:42+01:00
    Improve mapping of breakpoints to disassembly & source
    
    * We breakpoint directly on source/disassembly lines rather than trying to map
      to instructions that may get stepped over and skipped.
    
  • f18d1b3b
    by baldurk at 2022-06-22T20:04:42+01:00
    Improve ordering of source declared variables for debug info
    
  • c13366d1
    by baldurk at 2022-06-22T20:04:42+01:00
    Fix capturing frame 0 if the first window is never presented
    
    * The first window created becomes active, if it never presents then a frame 0
      capture never finishes.
    
  • 81436706
    by Jake Turner at 2022-06-23T12:10:35+01:00
    Recursive patching of qt external dependencies
    
    Recursively copy and repoint the external libraries and their external dylib dependencies
    
  • c7b6d629
    by Jake Turner at 2022-06-23T12:11:57+01:00
    Serialization for Metal types
    
    structs
    
    MTL::Origin
    MTL::Region
    MTL::Size
    
    enums
    
    MTL::BlitOption
    MTL::DeviceLocation
    MTL::ArgumentBuffersTier
    MTL::DepthClipMode
    MTL::TriangleFillMode
    MTL::CullMode
    
  • 0499c2af
    by Jake Turner at 2022-06-23T12:11:57+01:00
    Serialization for enum MetalResourceType
    
  • 1f6b2abc
    by Jake Turner at 2022-06-23T12:11:57+01:00
    ObjC helpers MTL::Drawable, CALayer, CAMetalLayer
    
    Get_Texture(MTL::Drawable *drawable);
    Get_Layer(MTL::Drawable *drawable);
    CALayer_GetSize(void *layerHandle, int &width, int &height);
    CAMetalLayer_Set_drawableSize(void *layerHandle, int w, int h);
    CAMetalLayer_Set_device(void *layerHandle, MTL::Device *device);
    CAMetalLayer_Set_framebufferOnly(void *layerHandle, bool enable);
    CAMetalLayer_Set_pixelFormat(void *layerHandle, MTL::PixelFormat format);
    CA::MetalDrawable *CAMetalLayer_nextDrawable(void *layerHandle);
    
  • d3e2231b
    by Jake Turner at 2022-06-23T12:11:57+01:00
    Use bytebuf::assign() instead of resize, memcpy
    
  • b44a75ed
    by Jake Turner at 2022-06-23T12:11:57+01:00
    Helpers to convert MTL Blend, ColorWriteMask enums
    
    MakeBlendMultiplier(MTL::BlendFactor blend);
    MakeBlendOp(MTL::BlendOperation op);
    MakeWriteMask(MTL::ColorWriteMask mask);
    
  • 5919085e
    by baldurk at 2022-06-23T12:12:06+01:00
    Fix unused lambda capture compile warning
    
  • e310f729
    by baldurk at 2022-06-23T18:38:03+01:00
    Delete chunks upon re-beginning a command buffer
    
    * If a command buffer had an unbalanced begin/end, some chunks may still be left
      in the record that haven't been baked. Delete these before beginning to record
      again.
    
  • a4859114
    by baldurk at 2022-06-23T18:39:30+01:00
    Load stencil state from stencil attachment correctly
    
  • 67920a37
    by baldurk at 2022-06-24T11:10:57+01:00
    Update RGA backend to include gfx1035
    
  • 4d9f5342
    by baldurk at 2022-06-24T12:22:13+01:00
    Check queue availability in vulkan compute-only test
    
  • 1928315d
    by baldurk at 2022-06-24T13:34:46+01:00
    Fix a copy-paste error in D3D12_Compute_Only test
    
  • 5096d024
    by Jake Turner at 2022-06-24T21:03:36+01:00
    Future proofing MakeBlendMultiplier & MakeBlendOp
    
    Remove default from switch statements to trigger compile errors if MTL::BlendFactor or MTL::BlendOperation enumerations change in the future.
    
  • b6787686
    by Jake Turner at 2022-06-24T21:03:36+01:00
    Helpers for Texture byte size and ResourceFormat
    
    public Methods
    
    MakeResourceFormat(MTL::PixelFormat format);
    GetByteSize(uint32_t width, uint32_t height, uint32_t depth, MTL::PixelFormat format, uint32_t mip);
    
    private helper Methods
    
    IsOneComponent(MTL::PixelFormat mtlFormat);
    IsTwoComponent(MTL::PixelFormat mtlFormat);
    IsThreeComponent(MTL::PixelFormat mtlFormat);
    IsFourComponent(MTL::PixelFormat mtlFormat);
    IsBlockFormat(MTL::PixelFormat mtlFormat);
    IsDepthOrStencilFormat(MTL::PixelFormat mtlFormat);
    IsUNormFormat(MTL::PixelFormat mtlFormat);
    IsSNormFormat(MTL::PixelFormat mtlFormat);
    IsFloatFormat(MTL::PixelFormat mtlFormat);
    IsUIntFormat(MTL::PixelFormat mtlFormat);
    IsSIntFormat(MTL::PixelFormat mtlFormat);
    IsSRGBFormat(MTL::PixelFormat mtlFormat);
    IsYUVFormat(MTL::PixelFormat format);
    GetBlockShape(MTL::PixelFormat format, uint32_t plane);
    GetPlaneByteSize(uint32_t width, uint32_t height, uint32_t depth, MTL::PixelFormat format, uint32_t mip, uint32_t plane);
    
  • 98075c67
    by Jake Turner at 2022-06-24T21:03:36+01:00
    Unit tests for Metal format helper methods
    
    Basic tests for public methods:
    MakeResourceFormat(MTL::PixelFormat format);
    GetByteSize(uint32_t width, uint32_t height, uint32_t depth, MTL::PixelFormat format, uint32_t mip);
    
    One test for helper method:
    GetPlaneByteSize(uint32_t width, uint32_t height, uint32_t depth, MTL::PixelFormat format, uint32_t mip, uint32_t plane);
    
  • d34c2cf6
    by Jake Turner at 2022-06-27T11:03:22+01:00
    Do not clear catch failure return state
    
  • dd58dd01
    by Jake Turner at 2022-06-27T11:03:22+01:00
    Update expected error message to match code
    
    Fixes failing "Buffer format parsing" unit test
    
  • 0a4fbe8c
    by Jake Turner at 2022-06-27T11:07:46+01:00
    Improve Xcode project generation for qrenderdoc
    
    Xcode does not match the cmake behaviour of rerunning the target every time if the output file does not exist and then letting the Qt build system handle dependency checking.
    Xcode has a property to behave like this, however that is not exposed by cmake.
    To improve this for the Xcode qrenderdoc project manually add qrenderdoc sources files as dependencies.
    
    Changed the Xcode project for qrenderdoc to add the files to the UI grouped by the file system folders using the cmake source_group(TREE *) command.
    
  • d257b501
    by Jake Turner at 2022-06-28T12:33:45+01:00
    Wrapped MtlBlitCommandEncoder
    
    Added temporary implementation of GetWrapped() and Unwrap() for the unimplemented Metal types used by MTLBlitCommandEncoder APIs (MTLFence, MTLIndirectCommandBuffer, MTLCounterSampleBuffer).
    The API synchronizeResource uses ObjC inheritance for MTLResource, which uses new helper methods for MTLResource without implementing the complete type.
    
    MTLResource helper methods: GetResID(), Unwrap(), GetWrapped().
    The WrappedMTLResource* is cast to WrappedMTLObject* to get the ID and real resource.
    
    For the unimplemented Metal types: MTLFence, MTLIndirectCommandBuffer, MTLCounterSampleBuffer have added temporary implementations of GetWrapped() and Unwrap().
    These temporary implementations perform the appropriate casting. There is no actual implementation of the unimplemented wrapped types. These unimplemented wrapped types are a temporary solution to enable the ObjC bridge to be implemented.
    
    The APIs related to retrieving GPU counters have been hooked with basic serialization. It is expected the replay and capture will need to be specific ie. capture & serialize the buffer data, then at replay upload the serialized buffer data to the GPU buffer.
    
  • 44f4fdaf
    by Remi Palandri at 2022-06-29T11:03:38+01:00
    fix preview window bug post-activity destruction
    
  • 4ba631d8
    by Christian Voss-Wolff at 2022-06-29T11:04:01+01:00
    Fix Vulkan crash when viewing NV12 in TextureViewer
    
  • 681611d3
    by Jake Turner at 2022-06-30T11:40:09+01:00
    MTLCommandBuffer API: enqueue, waitUntilCompleted
    
    Hook and capture serialization for enqueue() & waitUntilCompleted()
    
  • 4d699623
    by Jake Turner at 2022-06-30T11:40:09+01:00
    Return the WrappedMTLCommandQueue from CmdBuffer
    
    Previous API return goes back to usage for objective C calls and this is not required now the objective C and C++ wrapping/unwrapping has advanced and simplified.
    More sense/natural/correct to return type without casting it.
    
  • ee82cf14
    by Jake Turner at 2022-06-30T11:40:09+01:00
    Add MetalCmdBufferStatus enum
    
  • 8b8027ff
    by Jake Turner at 2022-06-30T11:40:09+01:00
    Update MetalCmdBufferRecordingInfo data
    
    Switch to caching the CA::MetalLayer & WrappedMTLTexture from the MTL::Drawable.
    This is to avoid validation asserts about accessing the texture of a MTL::Drawable after calling MTLCommandBuffer::presentDrawable.
    
    Switch "bool present" to "uint32_t flags" to future proof being able to store multiple flags on the command buffer recoring info
    
  • 1816bb80
    by Jake Turner at 2022-06-30T11:40:09+01:00
    Use capture mode directly : don't use local var
    
    ie. replace
    
    bool backframe = IsBackgroundCapturing(m_State);
    if(backframe)
    
    with
    
    if(IsBackgroundCapturing(m_State))
    
  • b9e5e2fd
    by baldurk at 2022-06-30T13:24:36+01:00
    Use QList for variables in ShaderViewer
    
    * Using a linked list instead of a vector makes insert/erase operations for
      variables being created and destroyed significantly faster.
    
  • 7990254b
    by baldurk at 2022-06-30T13:51:26+01:00
    Avoid copying shader debug states, only move them
    
  • 6870329a
    by baldurk at 2022-06-30T13:51:26+01:00
    Detect java not being in PATH at all, document java PATH requirement
    
  • 337704df
    by baldurk at 2022-06-30T13:51:26+01:00
    Use a dense map for SPIR-V ID deaths
    
  • de619024
    by baldurk at 2022-06-30T13:51:26+01:00
    Test for extended UAV support in D3D11 test
    
  • 8e4b44ae
    by baldurk at 2022-06-30T13:51:26+01:00
    Add test of integer offsets on texture sample for D3D shader debug
    
  • 9603f5a9
    by baldurk at 2022-06-30T13:51:27+01:00
    Pre-compile shaders for math and sampling opcodes during shader debug
    
    * D3D12 math shader was already precompiled, but on D3D11 we now allocate
      everything up front and on D3D12 we also up-front compile sampling.
    * The only exception is const offsets which can't be variable, so we cache these
      (likely we'll only see a few variants per shader/capture) and create them on
      demand.
    
  • c817b6f9
    by baldurk at 2022-06-30T14:49:02+01:00
    Fix clang warning
    
  • 4dc80c17
    by baldurk at 2022-06-30T15:41:45+01:00
    Use non-legacy ASIC to generate AMDIL
    
    * This may break on drivers old enough to not recognise the first non-legacy
      ASIC, but that is much rarer than new drivers that have dropped support for
      the old ones.
    
  • 02103a96
    by Jake Turner at 2022-07-04T10:15:25+01:00
    Set non-replay state to BackgroundCapturing
    
  • c7dae679
    by Jake Turner at 2022-07-04T10:15:25+01:00
    Use objc_constructInstance in AllocateObjCBridge
    
    This constructs in-place the ObjC bridge class.
    This fixes a bug where the reference count of the ObjC bridge class was not guaranteed to be initialized on construction.
    
  • 8c41ff71
    by Jake Turner at 2022-07-04T10:15:25+01:00
    Added MetalResourceManager::ReleaseWrappedResource
    
  • c56beb77
    by Jake Turner at 2022-07-04T10:15:25+01:00
    Added DeallocateObjCBridge(WrappedMTL<type> *)
    
    This replaces WrappedMTLObject::Dealloc() which was not implemented or hooked up (it was a TODO).
    Deleted WrappedMTLObject::Dealloc()
    DeallocateObjCBridge calls resource manager ReleaseWrappedResource().
    
  • 1fdb7db0
    by baldurk at 2022-07-04T14:22:59+01:00
    Don't use shader compile flags when editing decompiled shader
    
  • 049884f5
    by baldurk at 2022-07-04T15:00:36+01:00
    Don't make decisions based on legacy GL contexts
    
    * This is especially relevant on Android where we fetch all function pointers at
      init time, so any that we replace via emulation are gone, but it is also
      generally true that we expect GL contexts to be representative.
    
  • 2f30ad3e
    by Jake Turner at 2022-07-05T11:23:03+01:00
    Make METAL_NOT_HOOKED() be Fatal instead of Error
    
  • d361ebf7
    by Jake Turner at 2022-07-05T13:01:00+01:00
    Allow command line to override Apple cmake options
    
    CMAKE_OSX_ARCHITECTURES
    ENABLE_PYRENDERDOC
    CMAKE_OSX_DEPLOYMENT_TARGET
    
    Remove CMAKE_OSX_ARCHITECTURES default setting to build for multiple architectures.
    Enable ENABLE_PYRENDERDOC to On by default for Apple.
    
  • 398a92ba
    by baldurk at 2022-07-05T13:13:24+01:00
    Fix error introduced in 4ba631d where stencil byte offset was always 0
    
  • 530c8cf0
    by baldurk at 2022-07-05T13:13:24+01:00
    Don't call SPIR-V callback with optional IDs not present
    
  • 5b2b988b
    by Jake Turner at 2022-07-05T13:37:47+01:00
    Test changing vulkan compute shader entry-point
    
    Commit for original bug fix:
    "Fix entry-point remapping when editing compute shaders on vulkan"
    c81a522360820e89c5cfdf1a364d473a62d21e44
    
    
  • 01184079
    by Jake Turner at 2022-07-05T13:37:47+01:00
    Test editing vulkan compute shader
    
    Replace existing HLSL compute shader with a GLSL compute shader
    
  • 988e7723
    by John Kattukudiyil at 2022-07-08T11:07:21+01:00
    Update OpenGL Pixel History with failed tests
    
    - Use samples passed query to add pixel modification data per fragment
    - detect draw events that failed culling, scissor, stencil, and depth tests
    
  • 420efa41
    by Orson Baines at 2022-07-08T11:07:21+01:00
    Only create one history item per event for now
    
  • 4e13b1ad
    by Jake Turner at 2022-07-08T11:08:18+01:00
    Update Metal CPP to support tests project
    
    Copy Metal driver metal-cpp files to the tests project for use in the tests project
    
    Add extensions from Learn Metal-cpp project: https://developer.apple.com/metal/cpp/
    
    https://developer.apple.com/metal/LearnMetalCPP.zip
    
    Custom additions to Metal CPP to get NSApplication, NSView, NSWindow, CAMetalLayer to work stand alone without requiring MetalKit library.
    
  • c83851e8
    by Jake Turner at 2022-07-08T11:08:18+01:00
    First Apple platform support for Vulkan demos
    
    Uses Metal-CPP-Extensions code to create window and the event loop.
    Does not include support for Nuklear
    
  • 6d7832df
    by Jake Turner at 2022-07-08T11:08:18+01:00
    Update testing docs with info about Apple
    
    Adding note about using "--demos-binary" option to specify the filepath of the demos binary as an alternative to making sure the demos binary is in the PATH.
    
    Fixed a typo "can'tbe" -> "can't be"
    
  • c395bb2c
    by baldurk at 2022-07-08T11:08:40+01:00
    Work around NV driver bug on D3D11 copying from >2GB buffer
    
  • 2307c3b0
    by baldurk at 2022-07-08T11:08:40+01:00
    Add explicit error message for fetching counters without developer mode
    
    * Now that we can report proper error messages, also return more information and
      don't use a separate message box.
    
  • 92971fb0
    by baldurk at 2022-07-08T11:08:40+01:00
    List the current EID when a fatal error is detected
    
  • 83bff08f
    by baldurk at 2022-07-08T11:25:57+01:00
    Don't enable global hook if short paths are unavailable. Closes #2645
    
    * AppInit_DLLs requires short paths to be specified, if they can't be created on
      the volume we can't reliably enable the global hook.
    * Detecting this programmatically is quite complex, but since we know the shim
      file is always longer than 8.3, if we detect that the short path is the same
      length as the long path we know short names weren't used.
    
  • 52c00efb
    by baldurk at 2022-07-11T12:59:49+01:00
    Apply matrix stride to inner children for multi-dimensional arrays
    
  • d39197a4
    by baldurk at 2022-07-11T13:00:18+01:00
    Arrays of float3 with a stride of 12 is only possible in scalar packing
    
    * Previously this would be treated as std430 due to being 'tight' array packed,
      even though std430 only allows as tight as the base alignment - which for a
      float3 is 16-bytes still.
    
  • 7bdf26d3
    by baldurk at 2022-07-11T13:02:23+01:00
    Implement location tracking and goto for GS printfs
    
    * We can't debug geometry shaders but we can scroll to them, as long as we have
      the primitive. We can't differentiate instances currently without passing that
      data through from the VS (and through tessellation, if it exists).
    * This also disables the debug and goto buttons for printfs from shader stages
      that don't support those operations.
    
  • c14fad42
    by baldurk at 2022-07-11T13:02:35+01:00
    Put quotes around the right parameter in disassembled debug printfs
    
  • 5ef82943
    by baldurk at 2022-07-11T13:03:54+01:00
    Pass through include paths properly when compiling shaders. Closes #2646
    
  • 7c68746f
    by baldurk at 2022-07-11T13:48:28+01:00
    Add missing reference to struct in python docs
    
  • 6095606b
    by baldurk at 2022-07-12T14:36:46+01:00
    Don't replay initial states for GL texture buffers with no buffer
    
  • bbe9624b
    by baldurk at 2022-07-13T11:32:18+01:00
    Rejig some code around to avoid stack size explosion in vulkan serialise
    
  • c7e41000
    by baldurk at 2022-07-13T12:09:31+01:00
    Remove hacky 'validation' of draws in render passes
    
    * This was an extremely old bit of code from before vulkan 1.0 to detect a
      common error. RenderDoc does not validate in general so delete this rather
      than keep it up to date.
    
  • 2833ea4a
    by baldurk at 2022-07-13T12:10:40+01:00
    Handle state changes on first event in a command buffer. Closes #2648
    
    * When selecting the first event in a command buffer the render state wouldn't
      properly be updated. This is particularly bad if the state that changed is
      being in/out of a renderpass.
    
  • b3ad3a20
    by baldurk at 2022-07-13T12:11:35+01:00
    Don't overwrite secondary command buffer renderpass state if inactive
    
    * With dynamic rendering, secondary command buffers don't always inherit
      renderpass state from the primary, they can start their own.
    
  • c3a6a8a9
    by baldurk at 2022-07-14T14:01:08+01:00
    If there's no fixed data don't fetch the whole buffer
    
  • 1494a8f7
    by baldurk at 2022-07-15T16:04:13+01:00
    Checking for the upload location variable being set in CI
    
    * This helps downstream forks to run CI without seeing a false negative in the
      mac release build due to being unable to upload the final package to the
      server.
    
  • 12350916
    by baldurk at 2022-07-15T18:00:38+01:00
    Compile shaders in debug when self-hosting captures
    
  • 23426264
    by baldurk at 2022-07-15T18:07:08+01:00
    Fix calculation of small mip co-ordinates for NPOT textures
    
  • 2d34834a
    by Jake Turner at 2022-07-18T12:41:44+01:00
    Add CAMetalLayer::device() to Metal-CPP
    
  • 2d6290ba
    by Jake Turner at 2022-07-18T12:41:44+01:00
    Basic Metal capture support
    
    Captures can be manually triggered from renderdoccmd capture <application> using F12 or from the UI on the in-development Metal replay branch.
    The captures can be loaded and replayed on the in-development Metal replay branch.
    
    The command buffer tracking and serialization are done by GPU submission order which is not necessarily the same as CPU commit order. The command buffer tracking for GPU submission order is currently using an rdcarray, this might change in the future to use a linked list if the performance of appending and deleting from the rdcarray becomes a performance bottleneck.
    
    Does not include support for the presented MTLDrawable ie.
    * Thumbnail generation of the final presented image.
    * Serializing the presented texture ID.
    
    Does not include support for initial state data.
    No MTLBuffer data contents are serialized.
    
    There is a lot missing and a lot of TODOs. 
    This is the basic structure for capturing which is then built upon. 
    
    Includes:
    * register the Metal device as a frame capturer ie. AddDeviceFrameCapturer
    * logic for triggering captures at Present ie. AddActiveDriver, StartFrameCapture, EndFrameCapture.
    * Stopped declaring MetalResourceManager as a friend of WrappedMTLDevice which meant making the initial state-related APIs public instead of private.
    * IFrameCapturer interface APIs
    * Command buffer tracking for including in the output capture CaptureCmdBufCommit and CaptureCmdBufEnqueue.
    * Serialise_MTLCreateSystemDefaultDevice(SerialiserType &ser)
    * A helper class MetalCapturer which is derived from IFrameCapturer and registered with the RenderDoc instance. This is because Wrapped Metal classes can't have virtual tables as a requirement for how the C++ and Objective C overlay is implemented.
    * The frame capture chunk and API AddFrameCaptureRecordChunk
    * MetalInitParams data and serialization.
    
    Helper Methods and Members in MTLDevice
    * WaitForGPU()
    * MTL::CommandQueue *m_mtlCommandQueue which is used to implement WaitForGPU()
    * CaptureClearSubmittedCmdBuffers() & CaptureCmdBufSubmit()
    * RegisterMetalLayer() & UnregisterMetalLayer() used to track active Metal swapchains
    
    Details on the memory lifetime for WrappedMTLCommandBuffer
    
    retain the real resource in WrappedMTLCommandBuffer::commit()
    release the real resource when no longer needed to be tracked: for background capture in during WrappedMTLDevice::CaptureCmdBufSubmit, for active capture in WrappedMTLDevice::EndFrameCapture.
    
    During capture (Background or Active)
    * AddRef() record when command buffer is enqueued (explicit or implicit)
    * Delete() record at end of command buffer submit
    
    During Active capture
    * AddRef() record in command buffer submit
    * Delete() submitted command buffers as part of finalizing the capture
    
    Added TrackedCAMetalLayer & ObjCTrackedCAMetalLayer to track the lifetime of CA::MetalLayer.
    The CA::MetalLayer is tracked in the hook for CAMetalLayer::nextDrawable(), with ObjCTrackedCAMetalLayer set as an association to the CAMetalLayer. Then ObjCTrackedCAMetalLayer::dealloc() triggers ending the tracking. 
    
  • fca14eac
    by Jake Turner at 2022-07-18T13:13:37+01:00
    Apple minimal Nuklear implementation using AppKit
    
  • fb91e736
    by Ryan Houdek at 2022-07-18T19:40:55+01:00
    Add support for vulkan layer suffixes
    
    While Renderdoc already supported multiarch for where to install the
    libraries with the LIB_SUFFIX option. The Vulkan layer was left out of
    this loop.
    
    Vulkan layers living in `/usr/share/vulkan/implicit_layer.d/` will use a
    suffix before the `.json` to separate libraries of different
    architectures. These layer files will then point to the architecture
    specific `library_path` inside that json file.
    
    Also updates the check in `LayerRegistrationPath` so it handles the
    suffix as well. This way `renderdoccmd` won't complain about conflicting
    json files.
    
  • 3b00cf24
    by baldurk at 2022-07-19T10:11:31+01:00
    Fix crash when structured exporting on D3D
    
  • 43462ea3
    by Nicola Cerone at 2022-07-20T10:38:38+01:00
    Fix arcball navigation by updating the basis matrix.
    
  • 8a0af20c
    by Jake Turner at 2022-07-21T10:32:32+01:00
    metal-cpp : add CA::MetalLayer::setFramebufferOnly
    
    Minor code formatting tidy on a couple of previous changes to better match the surrounding code style
    
  • 9e8be240
    by Jake Turner at 2022-07-21T10:32:32+01:00
    Deleted ObjC::CAMetalLayer_Set_framebufferOnly
    
    Use the metal-cpp implementation instead of the helper version
    
  • 97efa7cf
    by Jake Turner at 2022-07-21T10:32:32+01:00
    Capture support for the presented MTLDrawable
    
    Generate the capture thumbnail image from the presented `MTLTexture`
    Serialize the capture `PresentedImage` ID in the `CaptureEnd` chunk.
    
  • d7f286fb
    by Jake Turner at 2022-07-21T11:49:49+01:00
    Enable Clang warning "-Wshadow"
    
  • 1622667b
    by Jake Turner at 2022-07-21T11:49:49+01:00
    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
    
  • 062bc2b4
    by Jake Turner at 2022-07-21T11:49:49+01:00
    Fix "-Wshadow" error on "read" variable
    
  • 955695d9
    by Jake Turner at 2022-07-21T11:49:49+01:00
    Fix "-Wshadow" errors in Apple code
    
    WrappedMTLDevice CaptureCmdBufCommit() & CaptureCmdBufEnqueue() rename parameter "record" to "cbRecord"
    
  • 0d02425a
    by Jake Turner at 2022-07-21T11:49:49+01:00
    Enable Clang warning "-Wshorten-64-to-32"
    
  • fb042661
    by Jake Turner at 2022-07-21T11:49:49+01:00
    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
    
  • 8c379782
    by Jake Turner at 2022-07-21T11:49:49+01:00
    Fix "-Wshorten-64-to-32" error with ftell() use
    
    ftell() returns a long not an int
    
  • 9ab43e6c
    by Jake Turner at 2022-07-21T11:49:49+01:00
    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
    
  • cb2e4f12
    by Jake Turner at 2022-07-21T11:49:49+01:00
    Fix "-Wshorten-64-to-32" errors in Apple code
    
    Also rename AndroidCallstack -> AppleCallstack in apple_callstack.cpp
    
  • 240fcf33
    by Jake Turner at 2022-07-21T11:49:49+01:00
    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]
    
  • ac719cec
    by Jake Turner at 2022-07-21T11:49:49+01:00
    Fix Clang 14 compile warning
    
    Disable "-Wtautological-constant-out-of-range-compare" when compiling "3rdparty/compressonator/BC6_Encode_kernel.cpp"
    
  • c0539126
    by baldurk at 2022-07-22T16:10:59+01:00
    Add explicit DXIL shader encoding
    
  • fda5c481
    by baldurk at 2022-07-22T16:10:59+01:00
    Scroll shader viewer to entry point file & line using debug info
    
  • a967805a
    by baldurk at 2022-07-22T16:10:59+01:00
    Don't use StringFormat for SPIR-V GetRawName
    
  • e6100167
    by baldurk at 2022-07-22T16:10:59+01:00
    Don't track first pointer writes when we have debug info
    
  • aafd0ec7
    by baldurk at 2022-07-22T16:10:59+01:00
    Fix a bug with variables in loop coming into existence multiple times
    
  • 0b187934
    by baldurk at 2022-07-22T16:10:59+01:00
    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.
    
  • c98b16fd
    by baldurk at 2022-07-22T18:16:09+01:00
    Fix compile warnings
    
  • 6e332221
    by baldurk at 2022-07-22T18:45:20+01:00
    Fix missing documentation type declaration
    
  • 529ed4ff
    by Jake Turner at 2022-07-22T18:45:45+01:00
    Fix new compile errors in Metal EndFrameCapture
    
    Enabling -Wshorten-64-to-32 PR overlapped with this code landing
    
  • f6baad2a
    by Jake Turner at 2022-07-22T18:45:45+01:00
    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
    
  • ce60dd40
    by Jake Turner at 2022-07-22T18:45:45+01:00
    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]
    
  • 5d51b524
    by baldurk at 2022-07-25T10:08:59+01:00
    Fix interpreting and declaring buffer formats that include pointers
    
  • a33eb5fc
    by baldurk at 2022-07-25T10:08:59+01:00
    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.
    
  • 98a93408
    by baldurk at 2022-07-27T14:56:43+01:00
    Handle subpasses with unused color attachments in pixel history
    
  • 44a1de01
    by baldurk at 2022-07-28T17:52:50+01:00
    Bump version to v1.22
    
  • e938d4ee
    by Jake Turner at 2022-08-01T12:35:18+01:00
    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;
    
  • bb87da9d
    by Jake Turner at 2022-08-01T12:35:18+01:00
    Use CA::MetalDrawable* API instead of ObjC helpers
    
  • fdb5aade
    by Jake Turner at 2022-08-01T12:35:18+01:00
    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);
    
  • 02a1ac81
    by Jake Turner at 2022-08-01T12:35:18+01:00
    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;
    
  • 4e3d43bb
    by Jake Turner at 2022-08-01T12:35:18+01:00
    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++
    
  • 92fdfa09
    by Jake Turner at 2022-08-01T12:35:18+01:00
    Remove unused ObjC helper methods
    
    This helper method is now implemented by Metal-CPP
    void ObjC::Get_defaultLibraryData(bytebuf &buffer);
    
  • 32d4856a
    by Jake Turner at 2022-08-01T12:35:18+01:00
    Metal-CPP: correct NS::View::setLayer parameter
    
    Change parameter to be "CA::Layer*" instead of "void*"
    
  • b1b17efb
    by Jake Turner at 2022-08-01T12:35:59+01:00
    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
    
  • 50919f5c
    by baldurk at 2022-08-01T20:40:02+01:00
    Fix wrong API being used for cloned child GL contexts
    
  • 65581ca3
    by baldurk at 2022-08-01T20:40:03+01:00
    Subtract per-draw index byte offset from index buffer size
    
  • f78570dc
    by baldurk at 2022-08-01T20:40:03+01:00
    Fix some D3D12 debug warnings
    
  • 423da6b3
    by baldurk at 2022-08-01T20:40:03+01:00
    Clamp invalid descriptor indices in D3D12 to avoid writing out of bounds
    
  • d59e0bd7
    by baldurk at 2022-08-03T10:30:22+01:00
    Only ignore files with no filename and no contents. Closes #2673
    
  • 6b0c3a51
    by Remi Palandri at 2022-08-03T10:32:32+01:00
    remove unecessary log entries in vk_core
    
  • 80935c16
    by Robin Liu at 2022-08-03T17:43:35+01:00
    Fix compilation warnings for ggp platform.
    
    This fix the warning about comparison of integers of different signs.
    
  • b06df5dd
    by Robin Liu at 2022-08-03T17:43:35+01:00
    Supress shadow warning for ggp platform.
    
  • 935fa49c
    by baldurk at 2022-08-03T17:44:11+01:00
    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.
    
  • db1f1747
    by baldurk at 2022-08-03T17:44:11+01:00
    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.
    
  • ea35f0df
    by baldurk at 2022-08-03T17:44:11+01:00
    texture formats that aren't matrices shouldn't be marked row major
    
  • 19d8a064
    by baldurk at 2022-08-03T17:44:11+01:00
    Fix invalid DXIL for clamping D3D12 bindless feedback
    
  • e1cc50dd
    by baldurk at 2022-08-03T17:44:11+01:00
    Match "arrayed" bindings correctly in D3D12
    
  • 41769fe2
    by baldurk at 2022-08-03T18:56:20+01:00
    Fix missing DOCUMENT()
    
  • 826ec455
    by baldurk at 2022-08-03T22:23:11+01:00
    Add missing struct reference in docs
    
  • 234fdc88
    by baldurk at 2022-08-03T22:23:38+01:00
    Fix signed compile warning
    
  • c387234c
    by baldurk at 2022-08-03T22:37:58+01:00
    Fix compile error
    
  • 04a18ac7
    by Remi Palandri at 2022-08-04T10:08:14+01:00
    disable loadOp override if fastest level
    
  • f1d513f3
    by baldurk at 2022-08-04T13:39:48+01:00
    Refactor reserved slots in opaque pointer variables to use helpers
    
  • 958f73cf
    by baldurk at 2022-08-04T16:55:42+01:00
    Treat GPU pointers as 8-byte unsigned integers for typing purposes
    
  • ea6f8186
    by baldurk at 2022-08-04T16:55:52+01:00
    Expose lower_bound function in rdcflatmap
    
  • 94d1ce39
    by baldurk at 2022-08-04T16:56:32+01:00
    Cache text for GPUAddress values properly
    
  • 69378f5c
    by baldurk at 2022-08-04T18:54:58+01:00
    Fix warning on integer cast
    
  • 33ea305e
    by baldurk at 2022-08-05T13:03:32+01:00
    Show message in connection window for unsupported API capture
    
    * This is helpful when the normal overlay is not available or visible such as in
      VR headsets
    
  • be4f1055
    by baldurk at 2022-08-05T13:29:16+01:00
    Update vulkan header files to latest
    
  • cf4bc688
    by baldurk at 2022-08-05T14:08:45+01:00
    Disable shortening/shadow warnings on android
    
    * There are a lot of these issues in system or LLVM headers
    
  • 0a39b3d6
    by baldurk at 2022-08-05T16:17:17+01:00
    Add a wrap script with env var to work around Android bug. Refs #2651
    
  • a8f0fb17
    by baldurk at 2022-08-07T18:56:11+01:00
    Stop forcing references for resourced invalidated by freed bound memory
    
  • c64406b1
    by baldurk at 2022-08-08T10:18:04+01:00
    Accumulate timings for fake markers last. Closes #2679
    
    * Fake markers have higher EIDs than their children, unlike normal markers.
    
  • 2354d656
    by James0124 at 2022-08-08T16:21:07+01:00
    Fix duplicate `vkQueueSubmit2` events when `commandBufferInfoCount == 0`
    
    Add a "No Command Buffers" virtual label action, preventing `WrappedVulkan::ContextProcessChunk` from adding a duplicate event.
    
  • 8bf0c22d
    by baldurk at 2022-08-10T14:56:44+01:00
    Don't deserialise an array that's NULL
    
    * This should only happen if serialisation corruption is detected, but in that
      case we don't want to crash.
    
  • e29d48a2
    by baldurk at 2022-08-10T14:56:44+01:00
    Propagate command line arguments from DebugEntryPoint
    
  • e061ea3b
    by baldurk at 2022-08-10T14:56:44+01:00
    Improve handling of compilers & command line for edited shaders
    
    * We store the compiler used (when known) in shader debug info and use that to
      select the compiler for editing as even higher priority than the default for a
      given language/encoding combination.
    * We also ensure that for known tools we add the input and output parameters
      last, after any custom parameters, so that they are always present regardless
      of what the user puts in.
    
  • 855ad1af
    by baldurk at 2022-08-10T14:56:44+01:00
    Fix instruction number on DXBC instruction info
    
  • cbb8399d
    by baldurk at 2022-08-10T14:56:44+01:00
    Fix incorrect offset reading integer texture sampling results on D3D
    
  • 7286da50
    by baldurk at 2022-08-10T21:27:48+01:00
    Fix compilation error
    
  • 52909cd0
    by baldurk at 2022-08-10T21:28:00+01:00
    Use proper base file for editing shader files
    
  • 605f8a05
    by baldurk at 2022-08-10T23:52:24+01:00
    Fix documentation issues
    
  • c3c791be
    by baldurk at 2022-08-11T10:23:48+01:00
    When editing a shader, default to the edit base file
    
    * In the case of a munged file with #line directives, we want to edit that file,
      not the split-out view of the file containing the entry point.
    
  • 84b9a084
    by baldurk at 2022-08-11T10:49:55+01:00
    Block trying to get GCN ISA disassembly on OpenGL drivers 22.7.1+
    
    * In this version the disassembly is no longer available from the driver via
      this method. While it currently gives a normal error message, in future
      versions it may start crashing so we block it now.
    
  • e63f41ff
    by baldurk at 2022-08-11T11:28:11+01:00
    Add missing header
    
  • 424f910b
    by Jake Turner at 2022-08-11T11:30:35+01:00
    WrappedMTLObject::AddEven() & AddAction()
    
    Trampoline calls to m_Device->AddEvent() & AddAction()
    WrappedMTLDevice::AddAction() & AddAction() are currently empty stubs
    
  • 959d8e2e
    by Jake Turner at 2022-08-11T11:33:26+01:00
    Capture and serialise MTLBuffer contents
    
    MTLBuffer initial state chunks.
    CPU modified buffers chunks (MTLBuffer_InternalModifyCPUContents) stored in the command buffer record.
    
  • 0d10f3c9
    by baldurk at 2022-08-11T15:13:58+01:00
    Switch CI to ubuntu 20.04
    
  • 2a519bbe
    by baldurk at 2022-08-11T15:13:58+01:00
    Use fabs for floating point abs
    
  • a1ee4428
    by Remi Palandri at 2022-08-12T08:15:49+01:00
    add bicubic support to OpenGL pipeline state
    
  • 39456bce
    by baldurk at 2022-08-16T18:39:25+01:00
    Bake in Vulkan_Debug_StepToDebugValue
    
    * The behaviour with this set to true is significantly better for lightly-
      optimised code as comes out of HLSL legalisation, with little penalty for
      other code.
    
  • 59a7be89
    by baldurk at 2022-08-16T18:39:25+01:00
    Fix new-issue link not going to chooser properly
    
    * Also bump the config.yml just to see if it starts enforcing a redirect.
    
  • dd47f5a3
    by baldurk at 2022-08-16T18:39:26+01:00
    Fix event debug messages not being associated with the correct EIDs
    
  • 6bd7e7cc
    by Danylo Piliaiev at 2022-08-18T15:54:33+01:00
    Add support for VK_EXT_attachment_feedback_loop_layout
    
    Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com>
    
  • fbd0f3ee
    by baldurk at 2022-08-18T15:54:45+01:00
    Ensure that fixed data over 10k bytes is fetched in buffer viewer
    
    * We need to calculate the fixed data length properly even when there is no
      repeated data, so that pagination doesn't kick in on the data that is needed
      for the fixed region.
    
  • 9bb25f46
    by baldurk at 2022-08-18T15:54:46+01:00
    Switch web IRC links from kiwiirc to webchat.oftc.net
    
  • 84c824e5
    by baldurk at 2022-08-18T16:39:42+01:00
    Tweak colour used for 'view details' highlighting in pipeline state view
    
    * This helps those who have chosen the dark theme where rich resource text uses
      the default window text colour assuming it's a contrasting colour against the
      background (except when highlighted).
    
  • c7bfba2c
    by baldurk at 2022-08-19T11:00:09+01:00
    Tweak wording of message about writing indirect args during renderpass
    
  • f3f9c416
    by baldurk at 2022-08-19T11:00:22+01:00
    Count arrayed dynamic descriptors correctly
    
  • 3448195d
    by baldurk at 2022-08-19T18:43:40+01:00
    Handle implicitly-enabled promoted extensions. Refs #2695
    
  • 34b6f473
    by Jake Turner at 2022-08-22T15:52:03+01:00
    Metal Replay resource creation helper methods
    
    Added WrappedMTLDevice
    void AddResource(ResourceId id, ResourceType type, const char *defaultNamePrefix);
    void DerivedResource(ResourceId parentLive, ResourceId child);
    template <typename MetalType> void DerivedResource(MetalType parent, ResourceId child);
    
    Start of MetalReplay implementation to support replay resource creation:
    ResourceDescription &GetResourceDesc(ResourceId id);
    
    MetalReplay instance is not created in this commit
    
  • ce51361c
    by Jake Turner at 2022-08-22T15:52:03+01:00
    Metal Replay resource creation of a few base types
    
    MTLCommandQueue
    MTLLibrary
    MTLBuffer
    MTLRenderPipelineState
    MTLTexture
    MTLFunction
    
  • 08d07ddc
    by Jake Turner at 2022-08-22T15:52:03+01:00
    Set MTL::TextureUsageShaderRead during capture
    
    To be consistent with replay created textures set MTL::TextureUsageShaderRead on textures created during capture. This override is not serialized.
    
    PR Feedback
    
  • be674c01
    by baldurk at 2022-08-22T16:47:57+01:00
    Handle variable length string in OpEntryPoint correctly. Closes #2697
    
  • 50526c44
    by Shahbaz Youssefi at 2022-08-29T14:59:14+01:00
    Support VK_EXT_primitive_topology_list_restart
    
    This extension exposes a capability that pretty much all devices already
    had.  It allows list topologies to be used with primitive restart.
    
  • ed4c3756
    by Shahbaz Youssefi at 2022-08-29T14:59:14+01:00
    Enable primitive restart for list topologies
    
    This is supported by OpenGL, and on Vulkan with
    VK_EXT_primitive_topology_list_restart.  On Vulkan, all drivers are
    known to support this even without
    VK_EXT_primitive_topology_list_restart.  On D3D, primitive restart is
    only supported for strip topologies.
    
    Previously, RenderDoc specifically disabled primitive restart for
    non-strip topologies.  In this change, that is no longer done.  If the
    app enables primitive restart, so will RenderDoc behave accordingly.  It
    would be the responsibility of the app to avoid primitive restart if the
    API doesn't allow it.
    
  • 392073ab
    by Shahbaz Youssefi at 2022-08-29T15:08:51+01:00
    Support VK_EXT_primitives_generated_query
    
    This extension introduces a new query to aid GL emulation (equivalent to
    GL_PRIMITIVES_GENERATED)
    
  • 5773660e
    by Turánszki János at 2022-08-29T16:19:19+01:00
    added missing unwrap for src and dst resolve resources for depthstencil
    
    Follow up for this issue which was partly fixed, but the same crash started appearing after using depth resolve inside renderpass: https://github.com/baldurk/renderdoc/issues/2622
  • 033bcb2a
    by Hans-Kristian Arntzen at 2022-08-29T19:42:41+01:00
    Export correct CSV range and fixup element counts.
    
  • 7bad9214
    by Hans-Kristian Arntzen at 2022-08-29T19:42:41+01:00
    Export correct range for binary dumps as well.
    
  • 1f530a25
    by baldurk at 2022-08-30T15:12:26+01:00
    Report UAVBindSlot feature as supported in AGS. Refs #2700
    
  • 390e6106
    by Shahbaz Youssefi at 2022-08-31T09:55:12+01:00
    Support VK_EXT_depth_clip_control
    
    This extension adds a viewport pipeline state: negativeOneToOne
    
  • 75c1d37a
    by Shahbaz Youssefi at 2022-08-31T09:55:12+01:00
    Expose Vulkan depth clip range in the UI
    
    This change exposes the
    VkPipelineViewportDepthClipControlCreateInfoEXT::negativeOneToOne
    pipeline state in the UI.  While not a per-viewport state, this state is
    output alongside viewport information.
    
    If the extension is not used, or if this flag is false, [0, 1] is shown
    as the depth clip range.  If the flag is true, [-1, 1] is shown.
    
  • 0f4c280f
    by Jake Turner at 2022-08-31T09:57:48+01:00
    Added Metal Replay ProcessChunk()
    
    bool WrappedMTLDevice::ProcessChunk(ReadSerialiser &ser, MetalChunk chunk)
    
    SystemChunk::InitialContentsList is handled but not implemented
    
    Added declarations for dummy objects used for serialization replay
    
    WrappedMTLBuffer *m_DummyBuffer;
    WrappedMTLCommandBuffer *m_DummyReplayCommandBuffer;
    WrappedMTLCommandQueue *m_DummyReplayCommandQueue;
    WrappedMTLLibrary *m_DummyReplayLibrary;
    WrappedMTLRenderCommandEncoder *m_DummyReplayRenderCommandEncoder;
    WrappedMTLBlitCommandEncoder *m_DummyReplayBlitCommandEncoder;
    
    The dummy objects are not created in this commit.
    
  • b997bd2f
    by Jake Turner at 2022-08-31T09:57:48+01:00
    Add case for all MetalChunk in ProcessChunk switch
    
    Add the case manually and remove it from the METAL_CHUNK_NOT_HANDLED() helper macro
    PR Feedback
    
  • 0fc35e96
    by baldurk at 2022-09-02T14:03:39+01:00
    Fix Draw_Zoo tests for strip restart index changes
    
  • 6d4257fc
    by baldurk at 2022-09-02T14:03:39+01:00
    Handle extensions on dynamic rendering when manually managing RPs
    
  • 3a5ac585
    by John Cortell at 2022-09-02T17:10:10+01:00
    Enable AMD perf counter support for Samsung GPUs
    
    This change, along with changes in the GPA library, allows the user
    to collect AMD counters from a Samsung Xclipse GPU. Previous to this,
    the AMD counters could be collected only from GPUs with an AMD PCI
    vendor ID.
    
    Most of the changes are related to the fact that the Xclipse GPU has
    a unique (Samsung) PCI vendor ID, but is ultimately an AMD
    (RDNA2) derivative. So, we need the code to take the AMD path
    while technically being its own (non-AMD) GPU.
    
  • 20d3c981
    by Jake Turner at 2022-09-05T10:10:48+01:00
    Add "empty_map" unit tests for rdcflatmap
    
    Validate expected behaviour on an empty sorted and unsorted container
    
    begin() == end()
    find(*) == end()
    lower_bound(*) == 0
    upper_bound(*) == 0
    
  • edc61e62
    by Shahbaz Youssefi at 2022-09-05T10:14:08+01:00
    Refactor dynamic rendering setup code
    
    Deduplicating code between BeginRenderPassAndApplyState and
    FinishSuspendedRenderPass.  Fixes a bug where FinishSuspendedRenderPass
    was using the depth attachment for stencil.
    
  • e169df5d
    by baldurk at 2022-09-05T15:30:56+01:00
    Fix backwards masking of SECONDARY_COMMAND_BUFFERS_BIT in dyn rendering
    
  • 14d74e4d
    by Jake Turner at 2022-09-06T16:03:54+01:00
    Improve tracking of MTLDrawables (swapchains)
    
    Serialize the presented texture (presentedImage) as part of "presentDrawable" serialization.
    Use the present texture resource ID in the action name ie. "presentDrawable(Texture 23219)"
    Track the most recently presented image and use that in SystemChunk::CaptureEnd if the PresentedImage serialized data is empty resource.
    Track the CAMetalDrawable's created via the hooked CAMetalLayer::nextDrawable() method.
    
    Implements TODO in WrappedMTLCommandBuffer::presentDrawable
    "remove the (CA::MetalDrawable*) cast. Associate created texture and layer in hooked nextDrawable with MTL::Drawable*"
    
  • 8e2e0b6b
    by baldurk at 2022-09-06T17:45:29+01:00
    Disable -Wunused-value on gcc as it's buggy on gcc 12 it seems
    
  • 8f14374b
    by Shahbaz Youssefi at 2022-09-07T14:47:59+01:00
    Support VK_EXT_multisampled_render_to_single_sampled
    
    This extension greatly simplifies MSAA rendering on TBR hardware.
    
  • 54b8c7b8
    by baldurk at 2022-09-12T13:54:06+01:00
    Don't add usage if pCountBuffer is omitted on ExecuteIndirect
    
  • c060bff5
    by baldurk at 2022-09-12T13:54:06+01:00
    Use bigger batches for discard patterns on D3D12
    
  • 6d38a9dc
    by baldurk at 2022-09-12T13:54:06+01:00
    Update extension_support.md with recently added extensions
    
  • 0a6368f7
    by baldurk at 2022-09-12T13:54:06+01:00
    Ignore function-local OpUndef for stepping
    
  • 53c529fd
    by baldurk at 2022-09-12T13:54:06+01:00
    Handle OpAccessChain only for a global resource array index
    
    * If we have an OpAccessChain which only looks up a resource index and not
      anything else, we need to ensure that both we don't consume the first index
      next time, AND that we preserve the resource index for future access chains.
    
  • 4d632dd8
    by baldurk at 2022-09-12T13:54:06+01:00
    Coalesce adjacent contiguous sparse buffer binds on vulkan
    
  • 336e90d4
    by baldurk at 2022-09-12T13:54:07+01:00
    Display special D3D quality levels in texture viewer
    
  • bc867681
    by baldurk at 2022-09-13T12:19:46+01:00
    Fix internal pointers leaking out in change lists when debugging SPIR-V
    
  • 6ed5ac04
    by baldurk at 2022-09-13T17:24:42+01:00
    Don't list a partial callstack for code without debug info
    
  • 3013be8d
    by baldurk at 2022-09-13T17:24:42+01:00
    Fix use of wrong instruction counter when instruction info is sparse
    
  • b49d7982
    by baldurk at 2022-09-13T17:24:42+01:00
    When looking for the start of an line, ignore if there's no debug info
    
    * When searching for the start of a range of instructions mapped to a single
      line when stepping backwards, we need to ignore instructions that don't have
      any debug info because they will look like a 'different' smaller stack.
    
  • 305eb332
    by baldurk at 2022-09-13T17:24:42+01:00
    Show better tooltips for constant buffers & structs
    
    * { ... } is clearer than having just ??? show up which looks like an error.
    
  • 58437e42
    by baldurk at 2022-09-13T17:24:42+01:00
    Handle missing DebugEntrypoint information
    
  • 4fbd1a08
    by baldurk at 2022-09-15T11:20:49+01:00
    Prefer DebugFunction name over function OpName when available
    
  • ceb2e81a
    by baldurk at 2022-09-15T13:26:15+01:00
    Revert "Export correct range for binary dumps as well."
    
    This reverts commit 7bad9214a861debbda0f48c9eea965eb5d2faf42.
    
  • 6643687a
    by baldurk at 2022-09-15T13:26:47+01:00
    Revert "Export correct CSV range and fixup element counts."
    
    This reverts commit 033bcb2a11768c4d82be45c910e46958219c9a06.
    
  • b375efdb
    by baldurk at 2022-09-15T13:36:16+01:00
    Use selected range of buffer not total object length when exporting
    
    * Same fix as #2703 but with a fix not to be limited by the pagination size
    
  • d61f10d2
    by baldurk at 2022-09-15T14:49:28+01:00
    Insert command buffer references after descriptor references on vulkan
    
    * During capture we don't insert references as we're recording descriptor binds,
      just once at queue submit time, as an optimisation. However this loses
      ordering relative to more direct references. Since descriptor binds are more
      conservative (either read, or read before write) we ensure to insert them
      first before any direct references like copies or fills which could mark the
      resource as completely written before read.
    
  • 58b96be4
    by baldurk at 2022-09-15T14:49:42+01:00
    Mark memory as dirty when bound to sparse resources
    
  • bc5aef54
    by baldurk at 2022-09-19T11:24:38+01:00
    Add a separate PanelMenu item for extensions in non-mesh buffer viewers
    
  • c851c44a
    by baldurk at 2022-09-19T12:35:33+01:00
    Get new cmake for building glslang in spirv plugins
    
  • 4e4a7518
    by baldurk at 2022-09-19T16:44:56+01:00
    Ensure inline uniform blocks have descriptor pool space allocated
    
  • 1fa4fed2
    by baldurk at 2022-09-19T16:44:56+01:00
    Check for shader 64-bit support before using them in tests
    
  • 00d7827d
    by baldurk at 2022-09-19T16:44:56+01:00
    Allow a ~500 difference between PS invocations and samples passed
    
    * This can be caused by overshading/rasterization differences
    
  • aa412ddf
    by baldurk at 2022-09-19T16:44:56+01:00
    Don't hard-fail on results of undefined tests in shader debug zoo
    
  • a04321fd
    by baldurk at 2022-09-19T16:44:56+01:00
    Handle D3D12 tier 1 VRS devices better when testing
    
  • 0afd7422
    by baldurk at 2022-09-19T16:44:56+01:00
    Check that S8 format is actually supported
    
  • 6d343903
    by baldurk at 2022-09-19T16:44:56+01:00
    Make sure that GS status is properly cleared on D3D12 on success
    
  • 89befedc
    by Leonid Fedorov at 2022-09-20T17:59:32+01:00
    Fix storing MSAA sample count for EGL capture
    
  • c01fdafc
    by baldurk at 2022-09-21T12:36:59+01:00
    Defer DebugValue/DebugDeclare processing until a valid scope is reached
    
    * Don't process DebugValue that we encounter in scopes other than those where
      the variable it's declaring is supposed to be visible. Instead put these in a
      queue and process them if that scope is later reached.
    
  • b3d7d5f5
    by Shahbaz Youssefi at 2022-09-22T09:41:23+01:00
    Correctly mark promoted extensions as supported
    
    `WrappedVulkan::vkCreateInstance` sets instance extension support based
    on whether:
    
    - Extension is enabled
    - Instance version >= core version in which ext is promoted
    - etc
    
    However, the code that looped through the extensions was inside a loop
    over the enabled extensions.  If there are no enabled extensions, this
    led to extensions promoted to core never being inspected.
    
    The code is split such that enabled extensions are checked within a
    loop, and promoted extensions are separately checked.
    
  • c19806ad
    by baldurk at 2022-09-23T11:35:52+01:00
    Restore IsStrip helper that should not have been removed
    
  • 387a9e57
    by baldurk at 2022-09-23T14:10:03+01:00
    Fix documentation references
    
  • 2da74f34
    by Jordan Justen at 2022-10-09T01:43:12-07:00
    Merge tag 'v1.22' into debian/master
    
    v1.22
    
  • c40c225e
    by Jordan Justen at 2022-10-09T01:45:34-07:00
    d/changelog: Start 1.22+dfsg-1 changelog
    
    Signed-off-by: Jordan Justen <jljusten@debian.org>
    
  • b3b51422
    by Jordan Justen at 2022-10-09T01:49:05-07:00
    d/patches: Rebase patches for renderdoc v1.22
    
    Signed-off-by: Jordan Justen <jljusten@debian.org>
    
  • 49369532
    by Jordan Justen at 2022-10-09T01:55:50-07:00
    d/control: Update Standards-Version to 4.6.1.0
    
    Signed-off-by: Jordan Justen <jljusten@debian.org>
    
  • 4ce79486
    by Jordan Justen at 2022-10-10T10:26:00-07:00
    d/source/lintian-overrides: Override source-is-missing for swig html files
    
    Signed-off-by: Jordan Justen <jljusten@debian.org>
    
  • 8cbe202f
    by Jordan Justen at 2022-10-10T10:26:30-07:00
    d/changelog: Release 1.22+dfsg-1 to unstable
    
    Signed-off-by: Jordan Justen <jljusten@debian.org>
    

30 changed files:

The diff was not included because it is too large.

Reply to: