Skip to content

Instantly share code, notes, and snippets.

View grovesNL's full-sized avatar

Josh Groves grovesNL

View GitHub Profile

Guide to attaching to Chrome with RenderDoc (for WebGL 2 and WebGPU)

  1. Set the environment variable RENDERDOC_HOOK_EGL to 0. I use the Windows Settings to set this in my User Environment Variables.
  2. Launch RenderDoc
  3. In RenderDoc, navigate to Tools -> Settings, then on the General page, check "Enable process injection (restart required)". Restart RenderDoc.
  4. Grab a copy of WinPixEventRuntime.dll from https://devblogs.microsoft.com/pix/winpixeventruntime/ (rename the .nupkg to a zip, it's in bin/x64), and copy it over to %LocalAppData%\Local\Google\Chrome SxS\Application\$CurrentVersion. Unfortunately this step needs to be repeated every time Chrome updates, since it wipes the current directory. Would be nice if it shipped with Chrome Canary / Chrome Dev (or was statically linked into Chrome)
  5. Launch Chrome with the arguments `--disable-gpu-sandbox --gpu-startup-dialog --disable-direct-composition=1 --enable-dawn-features=use_user_defined_labels_in_backend,emit_hlsl_debug_symbols,disable_symbo
data "aws_ami" "latest_spotfire" {
most_recent = true
owners = ["aws-marketplace"]
filter {
name = "product-code"
values = ["2c7dxpxtbfm3wc7iik24lbll2"]
}
}
resource "aws_instance" "spotfire" {
@gkaerts
gkaerts / bindless.hlsl
Last active April 28, 2025 00:05
Vulkan and D3D12 typed bindless resources in one shader-side API
// This file should be compiled with DXC against shader model 6.6
// Change the TARGET_API define here to either D3D or VK and switch compiler output formats (DXIL or SPIR-V) to match
#define D3D 1
#define VK 2
#define TARGET_API D3D
// Begin macro magic
#if TARGET_API == D3D
// No special root signature needed!
@rkbalgi
rkbalgi / gist:183a113e946dd9f8360e774dcf17a3db
Last active March 2, 2022 19:12
JDBC_PING with keycloak and postgresql on AWS Fargate
In your effort of implementing standalone-ha with keycloak postgresql using JDBC_PING you will stumble upon many sites that define
the table structure for jgroupsping and the right one goes like this -
CREATE TABLE IF NOT EXISTS JGROUPSPING (
own_addr varchar(200) NOT NULL,
cluster_name varchar(200) NOT NULL,
ping_data BYTEA,
constraint PK_JGROUPSPING PRIMARY KEY (own_addr, cluster_name)
);
@kottenator
kottenator / simple-pagination.js
Created July 13, 2015 20:44
Simple pagination algorithm
// Implementation in ES6
function pagination(c, m) {
var current = c,
last = m,
delta = 2,
left = current - delta,
right = current + delta + 1,
range = [],
rangeWithDots = [],
l;
@CMCDragonkai
CMCDragonkai / notes.md
Last active February 21, 2025 16:56
3 Address Code to SSA to Assembly Explanation (by Jason Hiebel)

Notes

It should be noted that:

  1. Basic blocks in SSA can be identified at 3 points:
  • Start of the program
  • Labels
  • Branches
  1. Basic blocks are used in optimisation.
@paniq
paniq / minmaxabssign.txt
Last active November 8, 2024 13:39
useful min/max/abs/sign identities
max(-x,-y) = -min(x,y)
min(-x,-y) = -max(x,y)
abs(x) = abs(-x)
abs(x) = max(x,-x) = -min(x,-x)
abs(x*a) = if (a >= 0) abs(x)*a
(a < 0) -abs(x)*a
// basically any commutative operation
min(x,y) + max(x,y) = x + y