Skip to content

Instantly share code, notes, and snippets.

Yuriy O'Donnell kayru

Block or report user

Report or block kayru

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
View keybase.md

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 Jul 26, 2018
Modified Vulkan Cube demo to show dropped frames in windowed FIFO present mode
View cube.c
/*
* 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
View gist:f929714c483f0b881d4830b0983bfb4e
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 Jun 25, 2018
Cache benchmark results
View cachebench-results.txt
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 Jun 24, 2018
CPU cache performance testbed
View cachebench.cpp
// 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>
View TimerTest.cpp
#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>
View gist:b548a9e6c7fd64544031ca7660033b16
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)
{
View computeEpsilon.cpp
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 Mar 15, 2016
findIntSSE2
View 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);
View nacl.html
<!DOCTYPE html>
<html>
<head>
<title>NaCl Test</title>
<script type="text/javascript">
ApplicationModule = null; // Global application object.
statusText = 'NO-STATUS';
// Indicate load success.
You can’t perform that action at this time.