Graphics Programming weekly - Issue 354 - August 25th, 2024


Characterizing CUDA and OpenMP Synchronization Primitives

  • the paper presents an overview of the performance characteristics of synchronization primitives
  • discusses what factors affect performance and presents performance results for these factors
  • presents an open-source testing framework to measure these effects


VK_KHR_pipeline_binary

  • this proposal discusses an alternative approach to Pipeline caching in Vulkan
  • explains limitations of the existing Vulkan methods
  • presents how the proposed solutions suggest solving limitations and giving application developers more control


Poor Foundations in Geometric Algebra

  • the author presents how Geometric Algebra concepts are often defined in the literature and what better definitions look like
  • discusses different concepts such as Inner Products, Contractions, and duals
  • additionally ensures comparing the best possible GA implementation against the best possible matrix implementations for a more fair comparison of the implementations


Compute With DirectX 12 – Part 2: The Setup

  • the D3D12 tutorial presents how to get started with compute shader usage
  • explains the steps required to setup shaders, create the necessary API objects, and execute the shader
  • source code is available


Jobs

Graphics Rendering Engineer

Relocate, Remote, Kuala Lumpur

General Arcade, a porting and co-development studio that has worked with a wide range of clients, from indies to AAA developers and publishers, including Larian, From Software, Capcom, Devolver Digital, TinyBuild, and others, is seeking a Software Engineer with a rendering emphasis.

This is a great opportunity to work with a passionate engineering team on cutting-edge industry technologies.


Workarounds for issues with mesh shaders + Vulkan + HLSL

  • the blog post explains how HLSL shaders compiled for mesh shader usage with Vulkan require special annotations
  • default shader behavior doesn’t handle it correctly, and it only fails on AMD without any validation errors


Recreating Nanite: Raytracing

  • the article discusses a method to allow virtual geometry to be represented in ray-tracing scenes
  • explains issues related to BVH construction and LOD selection
  • shows how to integrate generation logic into loading and runtime frames


Visualizing 4D Pt.1

  • the video develops a mental model for 4-dimensional space
  • explores where the space is located and what it represents
  • starts exploring the space via generalization of concepts from 2D to 3D and finally to 4D


Decoding instructions with the machine-readable AMD GPU ISA specifications

  • the short blog post presents how to use human-readable ISA documentation to decode one CDNA instruction

AMD GPU machine-readable ISA documentation

  • AMD released ISA documentation for RDNA2 and CDNA ISA
  • additionally, it presents a small example application that presents how to use the released data


Gigi: Rapid Prototyping Platform for Real-Time Rendering

  • the blog post introduces a prototyping programming platform for shader development
  • exposes a way to use a visual node graph editor and HLSL shader nodes for the development of shader techniques
  • allows the export of the developed solution into D3D12 code (more targets will be supported later)
  • the video tutorial presents how to use the system and the debug tools available to implement a box blur technique


Programmable Vertex Pulling // Intermediate OpenGL Series

  • the video tutorial explains how to load vertex information from within a Vertex Shader instead of relying on fixed function hardware
  • provides an overview of the concepts of Programmable Vertex Pulling and use cases that are enabled through it
  • implementation is shown using OpenGL


Thanks to Lesley Lai for support of this series.


Would you like to see your name here too? Become a Patreon of this series.