Skip to content

Instantly share code, notes, and snippets.

View Pikachuxxxx's full-sized avatar
🎩
lol

Phani Srikar Pikachuxxxx

🎩
lol
View GitHub Profile
@Pikachuxxxx
Pikachuxxxx / fibo.asm
Last active June 1, 2025 07:08
ARM64 fibo asm
.section __DATA,__data
phi_const:
.double 1.618033988749895
root5_const:
.double 2.23606797749979
msg:
.asciz "Hello, ARM64 macOS!\n"
.section __TEXT,__text
.global _hello
@Pikachuxxxx
Pikachuxxxx / CPU-GPU Bound Debug.txt
Created May 31, 2025 18:59
Fishbone diagrams to help debug CPU/GPU bound issues based on Bruce Waggoner saving voyager 1 presentation
// Inspired By: https://www.youtube.com/watch?v=E6TS1c8KWFA
CPU‐Bound Performance Issues
\
\ **Draw Call Count**
\ \
\ \ Too many state changes per frame
\ \ Small batches (lots of tiny draw calls)
\
\ **Synchronization**
\ \
@Pikachuxxxx
Pikachuxxxx / mangohud.conf
Created May 29, 2025 18:41
mangohud conf to collect game stats
# MangoHud.conf
output_folder=/home/
output_file=true
output_format=csv
output_pipe=false
# Logging control
log_duration=120 # Log for 2 minutes (120 seconds)
log_start=F4 # Trigger logging with F4
log_performance=true # Enable logging
@Pikachuxxxx
Pikachuxxxx / mmap.uml
Created May 26, 2025 02:12
deep dive into mmap for CPU and GPU mem alloc
@startuml
title mmap() System Call Flow
actor UserApp
participant KernelVFS as "Kernel VFS"
participant KernelMM as "Kernel Memory Manager"
participant Driver as "Device Driver (if any)"
participant ShmemFS as "Shared Memory Filesystem (shmem)"
participant KernelFS as "Kernel Filesystem"
@Pikachuxxxx
Pikachuxxxx / c_cpp_lambda_callback.cpp
Last active May 18, 2025 11:19
Based on an Insomniac's Engine programmer's blog, this is a trick I learned from him.
#include <iostream>
#include <utility>
void callback_test(void* userdata, void* path) {
std::cout << "Callback function called with path: "
<< static_cast<const char*>(path)
<< " and userdata: "
<< static_cast<const char*>(userdata) << std::endl;
}
@Pikachuxxxx
Pikachuxxxx / VulkanMemoryThoughts.txt
Last active April 24, 2025 20:39
Some thoughts about Vulkan memory allocation and drivers stuff
so usage will tell what are it's memory requirements, then we select the heap to allocate it from by comparing
the memory requirements for all available heaps in the physical device?
so vkGetBufferMemory erquirements takes in usage flags and returns which memoryType to use but not the Heap Index because that can be
implicitly inferered frmo memorytype?
so we check for compatible memortypes and return that index
vkGetBufferMemoryRequirements(VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements)
This call returns a VkMemoryRequirements structure, which includes:
@Pikachuxxxx
Pikachuxxxx / CStupidTrickStructVariableElements.c
Last active April 15, 2025 05:03
A stupid trick to calculate the nu of entries of a array dynamically
#include <stdio.h>
#include <stdint.h>
#include <stddef.h>
#include <assert.h>
#define TEST_STRUCT_ENTRIES(struct_type, start_member, end_member, expected_count) \
do { \
size_t start_offset = offsetof(struct_type, start_member); \
size_t end_offset = offsetof(struct_type, end_member); \
size_t num_elements = (end_offset - start_offset) / sizeof(uint32_t); \
@Pikachuxxxx
Pikachuxxxx / reflection.cpp
Created November 11, 2024 17:33
Reflection testing in C++ RTTI
#include <iostream>
#include <vector>
#include <string>
#include <typeinfo>
//----------------------------------
// Reflection System using typeid and decltype
struct MemberInfo
{
std::string name;
std::string typeName;
/**
* Dixy12 - DirectX12 learning sandbox
* Source: https://www.3dgep.com/learning-directx-12-1
*/
#include "common.h"
//----------------------------------------------------------------
constexpr uint8_t g_NumFrames = 3; // The number of swap chain back buffers. 2 Back buffers + 1 presentation image = 3
//----------------------------------------------------------------
namespace AppGlobalSettings {
@Pikachuxxxx
Pikachuxxxx / Blender_NameCleanup.py
Last active December 9, 2023 05:18
Scene clean up code to copy scene object name to mesh name in Blender
# [Source] : https://blender.stackexchange.com/questions/46795/is-there-a-quick-way-to-copy-the-object-name-to-the-mesh-data-name
import bpy
objects = bpy.data.objects
for obj in objects:
if obj.data and obj.data.users == 1:
obj.data.name = obj.name