This file contains hidden or 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
// | |
// cc glfw-metal-example.m `pkg-config --cflags --libs glfw3` -framework AppKit -framework Metal -framework QuartzCore | |
// | |
#define GLFW_INCLUDE_NONE | |
#define GLFW_EXPOSE_NATIVE_COCOA | |
#include <GLFW/glfw3.h> | |
#include <GLFW/glfw3native.h> | |
#import <Metal/Metal.h> | |
#import <QuartzCore/CAMetalLayer.h> |
This file contains hidden or 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
// NOTE: Must bind 8x single mip RWTexture views, because HLSL doesn't have .mips member for RWTexture2D. (SRVs only have .mips member) | |
// NOTE: globallycoherent attribute is needed. Without it writes aren't guaranteed to be seen by other groups | |
globallycoherent RWTexture2D<float> MipTextures[8]; | |
RWTexture2D<uint> Counters[8]; | |
groupshared uint CounterReturnLDS; | |
[numthreads(16, 16, 1)] | |
void GenerateMipPyramid(uint3 Tid : SV_DispatchThreadID, uint3 Group : SV_GroupId, uint Gix : SV_GroupIndex) | |
{ | |
[unroll] |
This file contains hidden or 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
; Pure Lisp based assembler | |
(def my-fun (input1 :in d1 | |
input2 :in d2 | |
output :out d0) | |
(move.l input1 output) | |
(add.l input2 output)) | |
---------------------------------------------------------------------------------------- | |
; We can also have loop constructions by doing a macro (no need for it to be 'built-in') |