- 2011 - A trip through the Graphics Pipeline 2011
- 2015 - Life of a triangle - NVIDIA's logical pipeline
- 2015 - Render Hell 2.0
- 2016 - How bad are small triangles on GPU and why?
- 2017 - GPU Performance for Game Artists
- 2019 - Understanding the anatomy of GPUs using Pokémon
- 2020 - GPU ARCHITECTURE RESOURCES
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Script for setting up new Windows 11 PC for graphic development | |
# You need need to run it with administator rights | |
if (!([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] 'Administrator')) { | |
Start-Process -FilePath PowerShell.exe -Verb Runas -ArgumentList @("-ExecutionPolicy Bypass", "-File `"$($MyInvocation.MyCommand.Path)`"") | |
Exit | |
} | |
Push-Location $env:TEMP | |
function ShowFileExtensions { |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <stdio.h> | |
#include <stdlib.h> | |
#if defined __GNUC__ && (defined __i386__ || defined __x86_64__) | |
#define HAS_X86_CPUID 1 | |
#include <cpuid.h> | |
static inline void __x86_cpuidex(int reg[], int level, int count) | |
{ __cpuid_count(level, count, reg[0], reg[1], reg[2], reg[3]); } | |
#elif defined _MSC_VER && (defined _M_IX86 || defined _M_X64) | |
#define HAS_X86_CPUID 1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#pragma once | |
namespace YourNamespace | |
{ | |
struct Routine | |
{ | |
// Current "waiting time" before we run the next block | |
float wait_for = 0; | |
// Used during `rt_for`, which repeats the given block for X time |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#pragma once | |
#define DYN_ARR_OF(type) struct { \ | |
type *data; \ | |
type *endptr; \ | |
uint32_t capacity; \ | |
} | |
#if !defined(__cplusplus) | |
#define decltype(x) void* |
Taken from 2011 Macbook Pro Graphics Card FIX 100% WORKING!!!
EDIT This method works! But there is an improved version for better thermal management and brightness keys functionality. See improved version -> https://gist.github.com/cdleon/d1eff7246a25193304284ecec40445b0
if you are on high sierra 10.13.6+ you might need to use
Command + r
instead
Boot up holding down Command + r + s
void glEnableVertexAttribArray(GLuint attribIndex);
void glDisableVertexAttribArray(GLuint attribIndex);
void glVertexAttribPointer(GLuint attribIndex, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid * pointer);
void glVertexAttribFormat(GLuint attribIndex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset);
void glVertexAttribBinding(GLuint attribIndex, GLuint bindingIndex);
void glBindVertexBuffer(GLuint bindingIndex, GLuint buffer, GLintptr offset, GLintptr stride);
parameter | Details |
---|---|
attribIndex | the location for the vertex attribute to which the vertex array will feed data |
Orthodox C++ (sometimes referred as C+) is minimal subset of C++ that improves C, but avoids all unnecessary things from so called Modern C++. It's exactly opposite of what Modern C++ suppose to be.