Skip to content

Instantly share code, notes, and snippets.

glslangValidator -l shaders/test.comp

Keybase proof

I hereby claim:

  • I am kayru on github.
  • I am kayru (https://keybase.io/kayru) on keybase.
  • I have a public key ASBrKn33Jb_jISpGxCZO_GMLgyDMxEhN_4g6dqyNWRko9Qo

To claim this, I am signing this object:

@kayru
kayru / cube.c
Created July 26, 2018 08:38
Modified Vulkan Cube demo to show dropped frames in windowed FIFO present mode
/*
* Copyright (c) 2015-2016 The Khronos Group Inc.
* Copyright (c) 2015-2016 Valve Corporation
* Copyright (c) 2015-2016 LunarG, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
ffmpegCmd << "ffmpeg -r 60 -f rawvideo -pix_fmt rgba "
<< "-s " << FrameWidth << "x" << FrameHeight << " "
<< "-i - -preset fast -y -pix_fmt yuv420p -crf 21 " << CaptureVideoPath;
ffmpegPipe = _popen(ffmpegCmd, "wb");
while(rendering)
{
fwrite(framePixels, frameSizeInBytes, 1, ffmpegPipe);
}
@kayru
kayru / cachebench-results.txt
Last active June 25, 2018 08:14
Cache benchmark results
iPhone X
sizeLog2: 10 - Data size: 1 KiB (16 cache lines) - Total time: 0.096518 sec - Time/elem: 2.876475 ns -
sizeLog2: 11 - Data size: 2 KiB (32 cache lines) - Total time: 0.098588 sec - Time/elem: 2.938146 ns -
sizeLog2: 12 - Data size: 4 KiB (64 cache lines) - Total time: 0.098571 sec - Time/elem: 2.937641 ns -
sizeLog2: 13 - Data size: 8 KiB (128 cache lines) - Total time: 0.098576 sec - Time/elem: 2.937794 ns -
sizeLog2: 14 - Data size: 16 KiB (256 cache lines) - Total time: 0.098489 sec - Time/elem: 2.935203 ns -
sizeLog2: 15 - Data size: 32 KiB (512 cache lines) - Total time: 0.098492 sec - Time/elem: 2.935303 ns -
sizeLog2: 16 - Data size: 64 KiB (1024 cache lines) - Total time: 0.098705 sec - Time/elem: 2.941644 ns -
sizeLog2: 17 - Data size: 128 KiB (2048 cache lines) - Total time: 0.293225 sec - Time/elem: 8.738775 ns -
sizeLog2: 18 - Data size: 256 KiB (4096 cache lines) - Total time: 0.324969 sec - Time/elem: 9.684835 ns -
@kayru
kayru / cachebench.cpp
Last active June 24, 2018 21:30
CPU cache performance testbed
// clang++ -o cachebench -O2 -std=c++14 cachebench.cpp
#include <stdio.h>
#include <chrono>
#include <vector>
#include <algorithm>
#include <random>
#include <float.h>
#include <stdint.h>
#include <cstring>
#define NOMINMAX
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <windows.h>
#include <stdint.h>
#include <math.h>
#include <float.h>
#include <algorithm>
#include <vector>
@kayru
kayru / gist:b548a9e6c7fd64544031ca7660033b16
Created October 25, 2017 12:30
TriangleBestFitPlane.cpp
bool calculate_best_fit_plane(const Vec3* points, u32 count, Vec3& out_center, Vec3& out_normal)
{
if (count < 3)
{
return false;
}
Vec3 center = Vec3(0.0f);
for (u32 i = 0; i < count; ++i)
{
struct FloatBits
{
u32 mantissa : 23;
u32 exponent : 8;
u32 sign : 1;
};
template <typename ResultT, typename InputT>
inline ResultT bitCast(InputT v)
{
@kayru
kayru / findIntSSE2
Last active March 15, 2016 11:24
findIntSSE2
const int* findIntSSE2(const int* __restrict begin, const int* __restrict end, int needle)
{
const int* it = begin;
unsigned long index;
__m128i n = _mm_set1_epi32(needle);
while (it != end)
{
__m128i x = _mm_load_si128(reinterpret_cast<const __m128i*>(it));
__m128i m = _mm_cmpeq_epi32(x, n);
unsigned long k = _mm_movemask_epi8(m);