Skip to content

Instantly share code, notes, and snippets.

View jdryg's full-sized avatar

Jim Drygiannakis jdryg

View GitHub Profile
#include "usb_desc_builder.h"
#include "allocator.h"
#include <usb_stack/usb.h>
#include <stddef.h>
#include <string.h>
#include <memory.h>
typedef struct USBDescBuilder
{
StackAllocator* m_Allocator;
@jdryg
jdryg / swr.c
Last active January 4, 2023 18:38
Software Renderer
#include "swr.h"
#include "swr_math.h"
#include <stdbool.h>
#include <malloc.h>
#include <memory.h>
#include <string.h>
#include <assert.h>
#include <immintrin.h>
#define SWR_CONFIG_NO_PIXEL_SHADER 0
00007FF6EFDB1EB0 0F 28 D6 movaps xmm2,xmm6
00007FF6EFDB1EB3 0F 28 E6 movaps xmm4,xmm6
00007FF6EFDB1EB6 41 0F 58 D6 addps xmm2,xmm14
00007FF6EFDB1EBA 41 0F 58 E4 addps xmm4,xmm12
00007FF6EFDB1EBE 41 0F 58 F5 addps xmm6,xmm13
00007FF6EFDB1EC2 0F 28 CA movaps xmm1,xmm2
00007FF6EFDB1EC5 0F 28 C2 movaps xmm0,xmm2
00007FF6EFDB1EC8 0F C6 C2 00 shufps xmm0,xmm2,0
00007FF6EFDB1ECC 41 0F 59 C1 mulps xmm0,xmm9
00007FF6EFDB1ED0 0F C6 CA 55 shufps xmm1,xmm2,55h
@jdryg
jdryg / font8x8_basic.h
Created December 16, 2022 08:17
Triangle rasterization experiments
/**
* 8x8 monochrome bitmap fonts for rendering
* Author: Daniel Hepper <daniel@hepper.net>
*
* License: Public Domain
*
* Based on:
* // Summary: font8x8.h
* // 8x8 monochrome bitmap fonts for rendering
* //
@jdryg
jdryg / image_transform.cpp
Last active July 9, 2022 07:05
NV12 to RGBA SSE2
#define COLOR32_RED_SHIFT 0
#define COLOR32_GREEN_SHIFT 8
#define COLOR32_BLUE_SHIFT 16
#define COLOR32_ALPHA_SHIFT 24
#define COLOR32(r, g, b, a) (uint32_t)(((uint32_t)(r) << COLOR32_RED_SHIFT) | ((uint32_t)(g) << COLOR32_GREEN_SHIFT) | ((uint32_t)(b) << COLOR32_BLUE_SHIFT) | ((uint32_t)(a) << COLOR32_ALPHA_SHIFT))
#if CAMERA_CONFIG_USE_SIMD
static inline __m128i _mm_mullo_epi32(const __m128i& a, const __m128i& b)
{
__m128i tmp1 = _mm_mul_epu32(a, b);
@jdryg
jdryg / cubes.cpp
Created December 1, 2019 08:03
Minimal bgfx example to show D3D11 IB warning
/*
* Copyright 2011-2019 Branimir Karadzic. All rights reserved.
* License: https://github.com/bkaradzic/bgfx#license-bsd-2-clause
*/
#include "common.h"
#include "bgfx_utils.h"
#include "imgui/imgui.h"
namespace
@jdryg
jdryg / trace.txt
Created November 27, 2019 17:46
bgfx DynamicIndexBuffer resize trace
\bgfx\src\bgfx_p.h (3231): BGFX createDynamicIndexBuffer(num=1024, flags=0x0800) = 0x0003
\bgfx\src\bgfx_p.h (2320): BGFX setIndexBuffer(0x0003, first=0, num=30)
\bgfx\src\bgfx_p.h (2320): BGFX setIndexBuffer(0x0003, first=30, num=220701)
\bgfx\src\bgfx_p.h (2320): BGFX setIndexBuffer(0x0003, first=220731, num=216483)
\bgfx\src\bgfx_p.h (2320): BGFX setIndexBuffer(0x0003, first=437214, num=178803)
\bgfx\src\bgfx_p.h (2320): BGFX setIndexBuffer(0x0003, first=616017, num=6)
\bgfx\src\bgfx_p.h (2320): BGFX setIndexBuffer(0x0003, first=616023, num=50466)
\bgfx\src\bgfx_p.h (2320): BGFX setIndexBuffer(0x0003, first=666489, num=84474)
\bgfx\src\bgfx_p.h (2320): BGFX setIndexBuffer(0x0003, first=750963, num=6)
\bgfx\src\bgfx_p.h (2320): BGFX setIndexBuffer(0x0003, first=750969, num=50328)
@jdryg
jdryg / 65C02_id.lua
Created June 14, 2019 13:02
65C02 Instruction Decoder
require('hdl');
STATE_TYPE = bit[8];
S_BRK1 = const(STATE_TYPE, 0); --
S_BRK2 = const(STATE_TYPE, 1); --
S_BRK3 = const(STATE_TYPE, 2); --
S_BRK4 = const(STATE_TYPE, 3); --
S_BRK5 = const(STATE_TYPE, 4); --
S_BRK6 = const(STATE_TYPE, 5); --
@jdryg
jdryg / cmos_inverter.lua
Created April 21, 2019 09:51
CMOS inverter
require('mossim');
function init(component)
component.addInput("A", 1);
component.addOutput("Ab", 1);
m = mos();
local Vdd = mosInput(m, kState1);
local Gnd = mosInput(m, kState0);
@jdryg
jdryg / note.md
Last active April 26, 2019 06:45
A Switch-Level Model and Simulator for MOS Digital Systems