Skip to content
Snippets Groups Projects
  1. Jun 27, 2020
  2. Jun 26, 2020
  3. Jun 25, 2020
  4. Jun 24, 2020
    • Morph's avatar
      hid: Stub a series of "SevenSixAxisSensor" service commands · 2c930895
      Morph authored
      - Used by Captain Toad: Treasure Tracker Update 1.3.0
      
      While we're at it, fix the input parameters for SetIsPalmaAllConnectable and SetPalmaBoostMode
      2c930895
    • David Marcec's avatar
      51083875
    • David Marcec's avatar
      Mark invalid IPC buffers as ASSERT_OR_EXECUTE_MSG · 82ecdd01
      David Marcec authored
      Previously if applications would send faulty buffers(example homebrew) it would lead to us returning uninitalized data. Switching from ASSERT_MSG to ASSERT_OR_EXECUTE_MSG allows us to have a fail safe to prevent crashes but also continue execution without introducing undefined behavior
      82ecdd01
    • ReinUsesLisp's avatar
    • ReinUsesLisp's avatar
      gl_stream_buffer: Use InvalidateBufferData instead unmap and map · 39c97f1b
      ReinUsesLisp authored
      Making the stream buffer resident increases GPU usage significantly on
      some games. This seems to be addressed invalidating the stream buffer
      with InvalidateBufferData instead of using a Unmap + Map (with
      invalidation flags).
      39c97f1b
    • ReinUsesLisp's avatar
      gl_rasterizer: Use NV_vertex_buffer_unified_memory for vertex buffer robustness · 41a40903
      ReinUsesLisp authored
      Switch games are allowed to bind less data than what they use in a
      vertex buffer, the expected behavior here is that these values are read
      as zero. At the moment of writing this only D3D12, OpenGL and NVN through
      NV_vertex_buffer_unified_memory support vertex buffer with a size limit.
      
      In theory this could be emulated on Vulkan creating a new VkBuffer for
      each (handle, offset, length) tuple and binding the expected data to it.
      This is likely going to be slow and memory expensive when used on the
      vertex buffer and we have to do it on all draws because we can't know
      without analyzing indices when a game is going to read vertex data out
      of bounds.
      
      This is not a problem on OpenGL's BufferAddressRangeNV because it takes
      a length parameter, unlike Vulkan's CmdBindVertexBuffers that only takes
      buffers and offsets (the length is implicit in VkBuffer). It isn't a
      problem on D3D12 either, because D3D12_VERTEX_BUFFER_VIEW on
      IASetVertexBuffers takes SizeInBytes as a parameter (although I am not
      familiar with robustness on D3D12).
      
      Currently this only implements buffer ranges for vertex buffers,
      although indices can also be affected. A KHR_robustness profile is not
      created, but Nvidia's driver reads out of bound vertex data as zero
      anyway, this might have to be changed in the future.
      
      - Fixes SMO random triangles when capturing an enemy, getting hit, or
      looking at the environment on certain maps.
      41a40903
    • ReinUsesLisp's avatar
      gl_buffer_cache: Mark buffers as resident · 32485917
      ReinUsesLisp authored
      Make stream buffer and cached buffers as resident and query their
      address. This allows us to use GPU addresses for several proprietary
      Nvidia extensions.
      32485917
    • ReinUsesLisp's avatar
      gl_device: Expose NV_vertex_buffer_unified_memory except on Turing · 73fb3a30
      ReinUsesLisp authored
      Expose NV_vertex_buffer_unified_memory when the driver supports it.
      
      This commit adds a function the determine if a GL_RENDERER is a Turing
      GPU. This is required because on Turing GPUs Nvidia's driver crashes
      when the buffer is marked as resident or on DeleteBuffers. Without a
      synchronous debug output (single threaded driver), it's likely that
      the driver will crash in the first blocking call.
      73fb3a30
    • ReinUsesLisp's avatar
      00c66a72
Loading