A Modern GPGPU API & wip linux RDNA2+ Driver
rdna driver linux gpu
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

gir: added load/store shared

+23 -1
+5 -1
drivers/common/gir/gir.h
··· 5 5 #include <functional> 6 6 #include <string_view> 7 7 8 - #define GIR_VERSION "v1" 8 + #define GIR_VERSION "v1.1" 9 9 10 10 namespace gir { 11 11 ··· 44 44 Gt, 45 45 Ge, 46 46 Load, 47 + LoadShared, 47 48 Store, 49 + StoreShared, 48 50 Const, 49 51 GetRootPtr, 50 52 GetLocalInvocationId, ··· 109 111 Value lt(Value a, Value b); 110 112 111 113 Value load(Value addr); 114 + Value load_shared(Value addr); 112 115 void store(Value addr, Value data); 116 + void store_shared(Value addr, Value data); 113 117 114 118 Value get_root_ptr(); 115 119
+16
drivers/common/gir/gir_builder.cpp
··· 88 88 }); 89 89 } 90 90 91 + Value Builder::load_shared(Value addr) { 92 + return mod.emit(Inst{ 93 + .op = Op::LoadShared, 94 + .type = Type::I32, 95 + .operands = {addr}, 96 + }); 97 + } 98 + 91 99 void Builder::store(Value addr, Value data) { 92 100 mod.emit(Inst{ 93 101 .op = Op::Store, 102 + .type = Type::Void, 103 + .operands = {addr, data}, 104 + }); 105 + } 106 + 107 + void Builder::store_shared(Value addr, Value data) { 108 + mod.emit(Inst{ 109 + .op = Op::StoreShared, 94 110 .type = Type::Void, 95 111 .operands = {addr, data}, 96 112 });
+2
drivers/common/gir/gir_dump.cpp
··· 33 33 "Gt", 34 34 "Ge", 35 35 "Load", 36 + "LoadShared", 36 37 "Store", 38 + "StoreShared", 37 39 "Const", 38 40 "GetRootPtr", 39 41 "GetLocalInvocationId",