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:
glslangValidator -l shaders/test.comp |
I hereby claim:
To claim this, I am signing this object:
/* | |
* 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); | |
} |
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 - |
// 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> |
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) | |
{ |
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); |