mirror of
https://github.com/Ed94/Odin.git
synced 2026-06-13 09:22:22 -07:00
Merge pull request #1504 from odin-lang/directx-packages
DirectX Package Support
This commit is contained in:
@@ -376,6 +376,9 @@ FILE_TYPE_DISK :: 0x0001
|
||||
FILE_TYPE_CHAR :: 0x0002
|
||||
FILE_TYPE_PIPE :: 0x0003
|
||||
|
||||
RECT :: struct {left, top, right, bottom: LONG}
|
||||
POINT :: struct {x, y: LONG}
|
||||
|
||||
|
||||
when size_of(uintptr) == 4 {
|
||||
WSADATA :: struct {
|
||||
|
||||
+31
-18
@@ -223,31 +223,28 @@ void add_objc_proc_type(CheckerContext *c, Ast *call, Type *return_type, Slice<T
|
||||
map_set(&c->info->objc_msgSend_types, call, data);
|
||||
mutex_unlock(&c->info->objc_types_mutex);
|
||||
|
||||
add_package_dependency(c, "runtime", "objc_lookUpClass");
|
||||
add_package_dependency(c, "runtime", "sel_registerName");
|
||||
add_package_dependency(c, "runtime", "objc_allocateClassPair");
|
||||
|
||||
add_package_dependency(c, "runtime", "objc_msgSend");
|
||||
add_package_dependency(c, "runtime", "objc_msgSend_fpret");
|
||||
add_package_dependency(c, "runtime", "objc_msgSend_fp2ret");
|
||||
add_package_dependency(c, "runtime", "objc_msgSend_stret");
|
||||
}
|
||||
|
||||
bool is_constant_string(CheckerContext *c, String const &builtin_name, Ast *expr, String *name_) {
|
||||
Operand op = {};
|
||||
check_expr(c, &op, expr);
|
||||
if (op.mode == Addressing_Constant && op.value.kind == ExactValue_String) {
|
||||
if (name_) *name_ = op.value.value_string;
|
||||
return true;
|
||||
}
|
||||
gbString e = expr_to_string(op.expr);
|
||||
gbString t = type_to_string(op.type);
|
||||
error(op.expr, "'%.*s' expected a constant string value, got %s of type %s", LIT(builtin_name), e, t);
|
||||
gb_string_free(t);
|
||||
gb_string_free(e);
|
||||
return false;
|
||||
}
|
||||
|
||||
bool check_builtin_objc_procedure(CheckerContext *c, Operand *operand, Ast *call, i32 id, Type *type_hint) {
|
||||
auto const is_constant_string = [](CheckerContext *c, String const &builtin_name, Ast *expr, String *name_) -> bool {
|
||||
Operand op = {};
|
||||
check_expr(c, &op, expr);
|
||||
if (op.mode == Addressing_Constant && op.value.kind == ExactValue_String) {
|
||||
if (name_) *name_ = op.value.value_string;
|
||||
return true;
|
||||
}
|
||||
gbString e = expr_to_string(op.expr);
|
||||
gbString t = type_to_string(op.type);
|
||||
error(op.expr, "'%.*s' expected a constant string value, got %s of type %s", LIT(builtin_name), e, t);
|
||||
gb_string_free(t);
|
||||
gb_string_free(e);
|
||||
return false;
|
||||
};
|
||||
String builtin_name = builtin_procs[id].name;
|
||||
|
||||
if (build_context.metrics.os != TargetOs_darwin) {
|
||||
@@ -371,6 +368,10 @@ bool check_builtin_objc_procedure(CheckerContext *c, Operand *operand, Ast *call
|
||||
|
||||
}
|
||||
operand->mode = Addressing_Value;
|
||||
|
||||
add_package_dependency(c, "runtime", "objc_lookUpClass");
|
||||
add_package_dependency(c, "runtime", "sel_registerName");
|
||||
add_package_dependency(c, "runtime", "objc_allocateClassPair");
|
||||
return true;
|
||||
} break;
|
||||
}
|
||||
@@ -4086,6 +4087,18 @@ bool check_builtin_procedure(CheckerContext *c, Operand *operand, Ast *call, i32
|
||||
break;
|
||||
}
|
||||
|
||||
case BuiltinProc_constant_utf16_cstring:
|
||||
{
|
||||
String value = {};
|
||||
if (!is_constant_string(c, builtin_name, ce->args[0], &value)) {
|
||||
return false;
|
||||
}
|
||||
operand->mode = Addressing_Value;
|
||||
operand->type = alloc_type_multi_pointer(t_u16);
|
||||
operand->value = {};
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -9774,6 +9774,9 @@ gbString write_expr_to_string(gbString str, Ast *node, bool shorthand) {
|
||||
if (f->flags&FieldFlag_const) {
|
||||
str = gb_string_appendc(str, "#const ");
|
||||
}
|
||||
if (f->flags&FieldFlag_subtype) {
|
||||
str = gb_string_appendc(str, "#subtype ");
|
||||
}
|
||||
|
||||
for_array(i, f->names) {
|
||||
Ast *name = f->names[i];
|
||||
|
||||
@@ -144,6 +144,7 @@ void check_struct_fields(CheckerContext *ctx, Ast *node, Slice<Entity *> *fields
|
||||
}
|
||||
|
||||
bool is_using = (p->flags&FieldFlag_using) != 0;
|
||||
bool is_subtype = (p->flags&FieldFlag_subtype) != 0;
|
||||
|
||||
for_array(j, p->names) {
|
||||
Ast *name = p->names[j];
|
||||
@@ -158,6 +159,9 @@ void check_struct_fields(CheckerContext *ctx, Ast *node, Slice<Entity *> *fields
|
||||
Entity *field = alloc_entity_field(ctx->scope, name_token, type, is_using, field_src_index);
|
||||
add_entity(ctx, ctx->scope, name, field);
|
||||
field->Variable.field_group_index = field_group_index;
|
||||
if (is_subtype) {
|
||||
field->flags |= EntityFlag_Subtype;
|
||||
}
|
||||
|
||||
if (j == 0) {
|
||||
field->Variable.docs = docs;
|
||||
@@ -194,6 +198,20 @@ void check_struct_fields(CheckerContext *ctx, Ast *node, Slice<Entity *> *fields
|
||||
|
||||
populate_using_entity_scope(ctx, node, p, type);
|
||||
}
|
||||
|
||||
if (is_subtype && p->names.count > 0) {
|
||||
Type *first_type = fields_array[fields_array.count-1]->type;
|
||||
Type *t = base_type(type_deref(first_type));
|
||||
|
||||
if (!does_field_type_allow_using(t) &&
|
||||
p->names.count >= 1 &&
|
||||
p->names[0]->kind == Ast_Ident) {
|
||||
Token name_token = p->names[0]->Ident.token;
|
||||
gbString type_str = type_to_string(first_type);
|
||||
error(name_token, "'subtype' cannot be applied to the field '%.*s' of type '%s'", LIT(name_token.string), type_str);
|
||||
gb_string_free(type_str);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
*fields = slice_from_array(fields_array);
|
||||
|
||||
@@ -258,6 +258,9 @@ BuiltinProc__type_end,
|
||||
BuiltinProc_objc_register_selector,
|
||||
BuiltinProc_objc_register_class,
|
||||
|
||||
BuiltinProc_constant_utf16_cstring,
|
||||
|
||||
|
||||
BuiltinProc_COUNT,
|
||||
};
|
||||
gb_global BuiltinProc builtin_procs[BuiltinProc_COUNT] = {
|
||||
@@ -517,4 +520,7 @@ gb_global BuiltinProc builtin_procs[BuiltinProc_COUNT] = {
|
||||
{STR_LIT("objc_find_class"), 1, false, Expr_Expr, BuiltinProcPkg_intrinsics},
|
||||
{STR_LIT("objc_register_selector"), 1, false, Expr_Expr, BuiltinProcPkg_intrinsics},
|
||||
{STR_LIT("objc_register_class"), 1, false, Expr_Expr, BuiltinProcPkg_intrinsics},
|
||||
|
||||
{STR_LIT("constant_utf16_cstring"), 1, false, Expr_Expr, BuiltinProcPkg_intrinsics},
|
||||
|
||||
};
|
||||
|
||||
@@ -74,6 +74,7 @@ enum EntityFlag : u64 {
|
||||
|
||||
EntityFlag_Test = 1ull<<30,
|
||||
EntityFlag_Init = 1ull<<31,
|
||||
EntityFlag_Subtype = 1ull<<32,
|
||||
|
||||
EntityFlag_CustomLinkName = 1ull<<40,
|
||||
EntityFlag_CustomLinkage_Internal = 1ull<<41,
|
||||
@@ -86,6 +87,10 @@ enum EntityFlag : u64 {
|
||||
EntityFlag_Overridden = 1ull<<63,
|
||||
};
|
||||
|
||||
enum : u64 {
|
||||
EntityFlags_IsSubtype = EntityFlag_Using|EntityFlag_Subtype,
|
||||
};
|
||||
|
||||
enum EntityState : u32 {
|
||||
EntityState_Unresolved = 0,
|
||||
EntityState_InProgress = 1,
|
||||
|
||||
@@ -2122,6 +2122,77 @@ lbValue lb_build_builtin_proc(lbProcedure *p, Ast *expr, TypeAndValue const &tv,
|
||||
case BuiltinProc_objc_find_class: return lb_handle_objc_find_class(p, expr);
|
||||
case BuiltinProc_objc_register_selector: return lb_handle_objc_register_selector(p, expr);
|
||||
case BuiltinProc_objc_register_class: return lb_handle_objc_register_class(p, expr);
|
||||
|
||||
|
||||
case BuiltinProc_constant_utf16_cstring:
|
||||
{
|
||||
auto const encode_surrogate_pair = [](Rune r, u16 *r1, u16 *r2) {
|
||||
if (r < 0x10000 || r > 0x10ffff) {
|
||||
*r1 = 0xfffd;
|
||||
*r2 = 0xfffd;
|
||||
} else {
|
||||
r -= 0x10000;
|
||||
*r1 = 0xd800 + ((r>>10)&0x3ff);
|
||||
*r2 = 0xdc00 + (r&0x3ff);
|
||||
}
|
||||
};
|
||||
|
||||
lbModule *m = p->module;
|
||||
|
||||
auto tav = type_and_value_of_expr(ce->args[0]);
|
||||
GB_ASSERT(tav.value.kind == ExactValue_String);
|
||||
String value = tav.value.value_string;
|
||||
|
||||
LLVMTypeRef llvm_u16 = lb_type(m, t_u16);
|
||||
|
||||
isize max_len = value.len*2 + 1;
|
||||
LLVMValueRef *buffer = gb_alloc_array(temporary_allocator(), LLVMValueRef, max_len);
|
||||
isize n = 0;
|
||||
while (value.len > 0) {
|
||||
Rune r = 0;
|
||||
isize w = gb_utf8_decode(value.text, value.len, &r);
|
||||
value.text += w;
|
||||
value.len -= w;
|
||||
if ((0 <= r && r < 0xd800) || (0xe000 <= r && r < 0x10000)) {
|
||||
buffer[n++] = LLVMConstInt(llvm_u16, cast(u16)r, false);
|
||||
} else if (0x10000 <= r && r <= 0x10ffff) {
|
||||
u16 r1, r2;
|
||||
encode_surrogate_pair(r, &r1, &r2);
|
||||
buffer[n++] = LLVMConstInt(llvm_u16, r1, false);
|
||||
buffer[n++] = LLVMConstInt(llvm_u16, r2, false);
|
||||
} else {
|
||||
buffer[n++] = LLVMConstInt(llvm_u16, 0xfffd, false);
|
||||
}
|
||||
}
|
||||
|
||||
buffer[n++] = LLVMConstInt(llvm_u16, 0, false);
|
||||
|
||||
LLVMValueRef array = LLVMConstArray(llvm_u16, buffer, cast(unsigned int)n);
|
||||
|
||||
char *name = nullptr;
|
||||
{
|
||||
isize max_len = 7+8+1;
|
||||
name = gb_alloc_array(permanent_allocator(), char, max_len);
|
||||
u32 id = m->gen->global_array_index.fetch_add(1);
|
||||
isize len = gb_snprintf(name, max_len, "csbs$%x", id);
|
||||
len -= 1;
|
||||
}
|
||||
LLVMValueRef global_data = LLVMAddGlobal(m->mod, LLVMTypeOf(array), name);
|
||||
LLVMSetInitializer(global_data, array);
|
||||
LLVMSetLinkage(global_data, LLVMInternalLinkage);
|
||||
|
||||
|
||||
|
||||
LLVMValueRef indices[] = {
|
||||
LLVMConstInt(lb_type(m, t_u32), 0, false),
|
||||
LLVMConstInt(lb_type(m, t_u32), 0, false),
|
||||
};
|
||||
lbValue res = {};
|
||||
res.type = tv.type;
|
||||
res.value = LLVMBuildInBoundsGEP(p->builder, global_data, indices, gb_count_of(indices), "");
|
||||
return res;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
GB_PANIC("Unhandled built-in procedure %.*s", LIT(builtin_procs[id].name));
|
||||
|
||||
+3
-1
@@ -3510,12 +3510,13 @@ enum FieldPrefixKind : i32 {
|
||||
FieldPrefix_Unknown = -1,
|
||||
FieldPrefix_Invalid = 0,
|
||||
|
||||
FieldPrefix_using,
|
||||
FieldPrefix_using, // implies #subtype
|
||||
FieldPrefix_const,
|
||||
FieldPrefix_no_alias,
|
||||
FieldPrefix_c_vararg,
|
||||
FieldPrefix_auto_cast,
|
||||
FieldPrefix_any_int,
|
||||
FieldPrefix_subtype, // does not imply `using` semantics
|
||||
};
|
||||
|
||||
struct ParseFieldPrefixMapping {
|
||||
@@ -3532,6 +3533,7 @@ gb_global ParseFieldPrefixMapping parse_field_prefix_mappings[] = {
|
||||
{str_lit("c_vararg"), Token_Hash, FieldPrefix_c_vararg, FieldFlag_c_vararg},
|
||||
{str_lit("const"), Token_Hash, FieldPrefix_const, FieldFlag_const},
|
||||
{str_lit("any_int"), Token_Hash, FieldPrefix_any_int, FieldFlag_any_int},
|
||||
{str_lit("subtype"), Token_Hash, FieldPrefix_subtype, FieldFlag_subtype},
|
||||
};
|
||||
|
||||
|
||||
|
||||
+2
-1
@@ -300,6 +300,7 @@ enum FieldFlag : u32 {
|
||||
FieldFlag_auto_cast = 1<<4,
|
||||
FieldFlag_const = 1<<5,
|
||||
FieldFlag_any_int = 1<<6,
|
||||
FieldFlag_subtype = 1<<7,
|
||||
|
||||
// Internal use by the parser only
|
||||
FieldFlag_Tags = 1<<10,
|
||||
@@ -307,7 +308,7 @@ enum FieldFlag : u32 {
|
||||
|
||||
// Parameter List Restrictions
|
||||
FieldFlag_Signature = FieldFlag_ellipsis|FieldFlag_using|FieldFlag_no_alias|FieldFlag_c_vararg|FieldFlag_auto_cast|FieldFlag_const|FieldFlag_any_int,
|
||||
FieldFlag_Struct = FieldFlag_using|FieldFlag_Tags,
|
||||
FieldFlag_Struct = FieldFlag_using|FieldFlag_subtype|FieldFlag_Tags,
|
||||
};
|
||||
|
||||
enum StmtAllowFlag {
|
||||
|
||||
+6
-6
@@ -2334,7 +2334,7 @@ String lookup_subtype_polymorphic_field(Type *dst, Type *src) {
|
||||
GB_ASSERT(is_type_struct(src) || is_type_union(src));
|
||||
for_array(i, src->Struct.fields) {
|
||||
Entity *f = src->Struct.fields[i];
|
||||
if (f->kind == Entity_Variable && f->flags & EntityFlag_Using) {
|
||||
if (f->kind == Entity_Variable && f->flags & EntityFlags_IsSubtype) {
|
||||
if (are_types_identical(dst, f->type)) {
|
||||
return f->token.string;
|
||||
}
|
||||
@@ -2343,7 +2343,7 @@ String lookup_subtype_polymorphic_field(Type *dst, Type *src) {
|
||||
return f->token.string;
|
||||
}
|
||||
}
|
||||
if (is_type_struct(f->type)) {
|
||||
if ((f->flags & EntityFlag_Using) != 0 && is_type_struct(f->type)) {
|
||||
String name = lookup_subtype_polymorphic_field(dst, f->type);
|
||||
if (name.len > 0) {
|
||||
return name;
|
||||
@@ -2489,9 +2489,9 @@ bool are_types_identical_internal(Type *x, Type *y, bool check_tuple_names) {
|
||||
if (xf->token.string != yf->token.string) {
|
||||
return false;
|
||||
}
|
||||
bool xf_is_using = (xf->flags&EntityFlag_Using) != 0;
|
||||
bool yf_is_using = (yf->flags&EntityFlag_Using) != 0;
|
||||
if (xf_is_using ^ yf_is_using) {
|
||||
u64 xf_flags = (xf->flags&EntityFlags_IsSubtype);
|
||||
u64 yf_flags = (yf->flags&EntityFlags_IsSubtype);
|
||||
if (xf_flags != yf_flags) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -3813,7 +3813,7 @@ isize check_is_assignable_to_using_subtype(Type *src, Type *dst, isize level = 0
|
||||
|
||||
for_array(i, src->Struct.fields) {
|
||||
Entity *f = src->Struct.fields[i];
|
||||
if (f->kind != Entity_Variable || (f->flags&EntityFlag_Using) == 0) {
|
||||
if (f->kind != Entity_Variable || (f->flags&EntityFlags_IsSubtype) == 0) {
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
Vendored
+3627
File diff suppressed because it is too large
Load Diff
Vendored
+5102
File diff suppressed because it is too large
Load Diff
+531
@@ -0,0 +1,531 @@
|
||||
package directx_d3d12
|
||||
|
||||
D3D_FL9_1_REQ_TEXTURE1D_U_DIMENSION :: 2048
|
||||
D3D_FL9_3_REQ_TEXTURE1D_U_DIMENSION :: 4096
|
||||
D3D_FL9_1_REQ_TEXTURE2D_U_OR_V_DIMENSION :: 2048
|
||||
D3D_FL9_3_REQ_TEXTURE2D_U_OR_V_DIMENSION :: 4096
|
||||
D3D_FL9_1_REQ_TEXTURECUBE_DIMENSION :: 512
|
||||
D3D_FL9_3_REQ_TEXTURECUBE_DIMENSION :: 4096
|
||||
D3D_FL9_1_REQ_TEXTURE3D_U_V_OR_W_DIMENSION :: 256
|
||||
D3D_FL9_1_DEFAULT_MAX_ANISOTROPY :: 2
|
||||
D3D_FL9_1_IA_PRIMITIVE_MAX_COUNT :: 65535
|
||||
D3D_FL9_2_IA_PRIMITIVE_MAX_COUNT :: 1048575
|
||||
D3D_FL9_1_SIMULTANEOUS_RENDER_TARGET_COUNT :: 1
|
||||
D3D_FL9_3_SIMULTANEOUS_RENDER_TARGET_COUNT :: 4
|
||||
D3D_FL9_1_MAX_TEXTURE_REPEAT :: 128
|
||||
D3D_FL9_2_MAX_TEXTURE_REPEAT :: 2048
|
||||
D3D_FL9_3_MAX_TEXTURE_REPEAT :: 8192
|
||||
|
||||
D3D_COMPONENT_MASK_X :: 1
|
||||
D3D_COMPONENT_MASK_Y :: 2
|
||||
D3D_COMPONENT_MASK_Z :: 4
|
||||
D3D_COMPONENT_MASK_W :: 8
|
||||
|
||||
D3D12_16BIT_INDEX_STRIP_CUT_VALUE :: 0xffff
|
||||
D3D12_32BIT_INDEX_STRIP_CUT_VALUE :: 0xffffffff
|
||||
D3D12_8BIT_INDEX_STRIP_CUT_VALUE :: 0xff
|
||||
|
||||
D3D12_APPEND_ALIGNED_ELEMENT :: 0xffffffff
|
||||
D3D12_ARRAY_AXIS_ADDRESS_RANGE_BIT_COUNT :: 9
|
||||
|
||||
D3D12_CLIP_OR_CULL_DISTANCE_COUNT :: 8
|
||||
D3D12_CLIP_OR_CULL_DISTANCE_ELEMENT_COUNT :: 2
|
||||
|
||||
D3D12_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT :: 14
|
||||
D3D12_COMMONSHADER_CONSTANT_BUFFER_COMPONENTS :: 4
|
||||
D3D12_COMMONSHADER_CONSTANT_BUFFER_COMPONENT_BIT_COUNT :: 32
|
||||
D3D12_COMMONSHADER_CONSTANT_BUFFER_HW_SLOT_COUNT :: 15
|
||||
D3D12_COMMONSHADER_CONSTANT_BUFFER_PARTIAL_UPDATE_EXTENTS_BYTE_ALIGNMENT :: 16
|
||||
D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COMPONENTS :: 4
|
||||
D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COUNT :: 15
|
||||
D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READS_PER_INST :: 1
|
||||
D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READ_PORTS :: 1
|
||||
D3D12_COMMONSHADER_FLOWCONTROL_NESTING_LIMIT :: 64
|
||||
D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COMPONENTS :: 4
|
||||
D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COUNT :: 1
|
||||
D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READS_PER_INST :: 1
|
||||
D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READ_PORTS :: 1
|
||||
D3D12_COMMONSHADER_IMMEDIATE_VALUE_COMPONENT_BIT_COUNT :: 32
|
||||
D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_COMPONENTS :: 1
|
||||
D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_COUNT :: 128
|
||||
D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_READS_PER_INST :: 1
|
||||
D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_READ_PORTS :: 1
|
||||
D3D12_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT :: 128
|
||||
D3D12_COMMONSHADER_SAMPLER_REGISTER_COMPONENTS :: 1
|
||||
D3D12_COMMONSHADER_SAMPLER_REGISTER_COUNT :: 16
|
||||
D3D12_COMMONSHADER_SAMPLER_REGISTER_READS_PER_INST :: 1
|
||||
D3D12_COMMONSHADER_SAMPLER_REGISTER_READ_PORTS :: 1
|
||||
D3D12_COMMONSHADER_SAMPLER_SLOT_COUNT :: 16
|
||||
D3D12_COMMONSHADER_SUBROUTINE_NESTING_LIMIT :: 32
|
||||
D3D12_COMMONSHADER_TEMP_REGISTER_COMPONENTS :: 4
|
||||
D3D12_COMMONSHADER_TEMP_REGISTER_COMPONENT_BIT_COUNT :: 32
|
||||
D3D12_COMMONSHADER_TEMP_REGISTER_COUNT :: 4096
|
||||
D3D12_COMMONSHADER_TEMP_REGISTER_READS_PER_INST :: 3
|
||||
D3D12_COMMONSHADER_TEMP_REGISTER_READ_PORTS :: 3
|
||||
D3D12_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MAX :: 10
|
||||
D3D12_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MIN :: -10
|
||||
D3D12_COMMONSHADER_TEXEL_OFFSET_MAX_NEGATIVE :: -8
|
||||
D3D12_COMMONSHADER_TEXEL_OFFSET_MAX_POSITIVE :: 7
|
||||
|
||||
D3D12_CONSTANT_BUFFER_DATA_PLACEMENT_ALIGNMENT :: 256
|
||||
|
||||
D3D12_CS_4_X_BUCKET00_MAX_BYTES_TGSM_WRITABLE_PER_THREAD :: 256
|
||||
D3D12_CS_4_X_BUCKET00_MAX_NUM_THREADS_PER_GROUP :: 64
|
||||
D3D12_CS_4_X_BUCKET01_MAX_BYTES_TGSM_WRITABLE_PER_THREAD :: 240
|
||||
D3D12_CS_4_X_BUCKET01_MAX_NUM_THREADS_PER_GROUP :: 68
|
||||
D3D12_CS_4_X_BUCKET02_MAX_BYTES_TGSM_WRITABLE_PER_THREAD :: 224
|
||||
D3D12_CS_4_X_BUCKET02_MAX_NUM_THREADS_PER_GROUP :: 72
|
||||
D3D12_CS_4_X_BUCKET03_MAX_BYTES_TGSM_WRITABLE_PER_THREAD :: 208
|
||||
D3D12_CS_4_X_BUCKET03_MAX_NUM_THREADS_PER_GROUP :: 76
|
||||
D3D12_CS_4_X_BUCKET04_MAX_BYTES_TGSM_WRITABLE_PER_THREAD :: 192
|
||||
D3D12_CS_4_X_BUCKET04_MAX_NUM_THREADS_PER_GROUP :: 84
|
||||
D3D12_CS_4_X_BUCKET05_MAX_BYTES_TGSM_WRITABLE_PER_THREAD :: 176
|
||||
D3D12_CS_4_X_BUCKET05_MAX_NUM_THREADS_PER_GROUP :: 92
|
||||
D3D12_CS_4_X_BUCKET06_MAX_BYTES_TGSM_WRITABLE_PER_THREAD :: 160
|
||||
D3D12_CS_4_X_BUCKET06_MAX_NUM_THREADS_PER_GROUP :: 100
|
||||
D3D12_CS_4_X_BUCKET07_MAX_BYTES_TGSM_WRITABLE_PER_THREAD :: 144
|
||||
D3D12_CS_4_X_BUCKET07_MAX_NUM_THREADS_PER_GROUP :: 112
|
||||
D3D12_CS_4_X_BUCKET08_MAX_BYTES_TGSM_WRITABLE_PER_THREAD :: 128
|
||||
D3D12_CS_4_X_BUCKET08_MAX_NUM_THREADS_PER_GROUP :: 128
|
||||
D3D12_CS_4_X_BUCKET09_MAX_BYTES_TGSM_WRITABLE_PER_THREAD :: 112
|
||||
D3D12_CS_4_X_BUCKET09_MAX_NUM_THREADS_PER_GROUP :: 144
|
||||
D3D12_CS_4_X_BUCKET10_MAX_BYTES_TGSM_WRITABLE_PER_THREAD :: 96
|
||||
D3D12_CS_4_X_BUCKET10_MAX_NUM_THREADS_PER_GROUP :: 168
|
||||
D3D12_CS_4_X_BUCKET11_MAX_BYTES_TGSM_WRITABLE_PER_THREAD :: 80
|
||||
D3D12_CS_4_X_BUCKET11_MAX_NUM_THREADS_PER_GROUP :: 204
|
||||
D3D12_CS_4_X_BUCKET12_MAX_BYTES_TGSM_WRITABLE_PER_THREAD :: 64
|
||||
D3D12_CS_4_X_BUCKET12_MAX_NUM_THREADS_PER_GROUP :: 256
|
||||
D3D12_CS_4_X_BUCKET13_MAX_BYTES_TGSM_WRITABLE_PER_THREAD :: 48
|
||||
D3D12_CS_4_X_BUCKET13_MAX_NUM_THREADS_PER_GROUP :: 340
|
||||
D3D12_CS_4_X_BUCKET14_MAX_BYTES_TGSM_WRITABLE_PER_THREAD :: 32
|
||||
D3D12_CS_4_X_BUCKET14_MAX_NUM_THREADS_PER_GROUP :: 512
|
||||
D3D12_CS_4_X_BUCKET15_MAX_BYTES_TGSM_WRITABLE_PER_THREAD :: 16
|
||||
D3D12_CS_4_X_BUCKET15_MAX_NUM_THREADS_PER_GROUP :: 768
|
||||
D3D12_CS_4_X_DISPATCH_MAX_THREAD_GROUPS_IN_Z_DIMENSION :: 1
|
||||
D3D12_CS_4_X_RAW_UAV_BYTE_ALIGNMENT :: 256
|
||||
D3D12_CS_4_X_THREAD_GROUP_MAX_THREADS_PER_GROUP :: 768
|
||||
D3D12_CS_4_X_THREAD_GROUP_MAX_X :: 768
|
||||
D3D12_CS_4_X_THREAD_GROUP_MAX_Y :: 768
|
||||
D3D12_CS_4_X_UAV_REGISTER_COUNT :: 1
|
||||
|
||||
D3D12_CS_DISPATCH_MAX_THREAD_GROUPS_PER_DIMENSION :: 65535
|
||||
D3D12_CS_TGSM_REGISTER_COUNT :: 8192
|
||||
D3D12_CS_TGSM_REGISTER_READS_PER_INST :: 1
|
||||
D3D12_CS_TGSM_RESOURCE_REGISTER_COMPONENTS :: 1
|
||||
D3D12_CS_TGSM_RESOURCE_REGISTER_READ_PORTS :: 1
|
||||
D3D12_CS_THREADGROUPID_REGISTER_COMPONENTS :: 3
|
||||
D3D12_CS_THREADGROUPID_REGISTER_COUNT :: 1
|
||||
D3D12_CS_THREADIDINGROUPFLATTENED_REGISTER_COMPONENTS :: 1
|
||||
D3D12_CS_THREADIDINGROUPFLATTENED_REGISTER_COUNT :: 1
|
||||
D3D12_CS_THREADIDINGROUP_REGISTER_COMPONENTS :: 3
|
||||
D3D12_CS_THREADIDINGROUP_REGISTER_COUNT :: 1
|
||||
D3D12_CS_THREADID_REGISTER_COMPONENTS :: 3
|
||||
D3D12_CS_THREADID_REGISTER_COUNT :: 1
|
||||
D3D12_CS_THREAD_GROUP_MAX_THREADS_PER_GROUP :: 1024
|
||||
D3D12_CS_THREAD_GROUP_MAX_X :: 1024
|
||||
D3D12_CS_THREAD_GROUP_MAX_Y :: 1024
|
||||
D3D12_CS_THREAD_GROUP_MAX_Z :: 64
|
||||
D3D12_CS_THREAD_GROUP_MIN_X :: 1
|
||||
D3D12_CS_THREAD_GROUP_MIN_Y :: 1
|
||||
D3D12_CS_THREAD_GROUP_MIN_Z :: 1
|
||||
D3D12_CS_THREAD_LOCAL_TEMP_REGISTER_POOL :: 16384
|
||||
|
||||
D3D12_DEFAULT_BLEND_FACTOR_ALPHA :: 1.0
|
||||
D3D12_DEFAULT_BLEND_FACTOR_BLUE :: 1.0
|
||||
D3D12_DEFAULT_BLEND_FACTOR_GREEN :: 1.0
|
||||
D3D12_DEFAULT_BLEND_FACTOR_RED :: 1.0
|
||||
D3D12_DEFAULT_BORDER_COLOR_COMPONENT :: 0.0
|
||||
D3D12_DEFAULT_DEPTH_BIAS :: 0
|
||||
D3D12_DEFAULT_DEPTH_BIAS_CLAMP :: 0.0
|
||||
D3D12_DEFAULT_MAX_ANISOTROPY :: 16
|
||||
D3D12_DEFAULT_MIP_LOD_BIAS :: 0.0
|
||||
D3D12_DEFAULT_MSAA_RESOURCE_PLACEMENT_ALIGNMENT :: 4194304
|
||||
D3D12_DEFAULT_RENDER_TARGET_ARRAY_INDEX :: 0
|
||||
|
||||
D3D12_DEFAULT_RESOURCE_PLACEMENT_ALIGNMENT :: 65536
|
||||
D3D12_DEFAULT_SAMPLE_MASK :: 0xffffffff
|
||||
D3D12_DEFAULT_SCISSOR_ENDX :: 0
|
||||
D3D12_DEFAULT_SCISSOR_ENDY :: 0
|
||||
D3D12_DEFAULT_SCISSOR_STARTX :: 0
|
||||
D3D12_DEFAULT_SCISSOR_STARTY :: 0
|
||||
D3D12_DEFAULT_SLOPE_SCALED_DEPTH_BIAS :: 0.0
|
||||
D3D12_DEFAULT_STENCIL_READ_MASK :: 0xff
|
||||
D3D12_DEFAULT_STENCIL_REFERENCE :: 0
|
||||
D3D12_DEFAULT_STENCIL_WRITE_MASK :: 0xff
|
||||
D3D12_DEFAULT_VIEWPORT_AND_SCISSORRECT_INDEX :: 0
|
||||
D3D12_DEFAULT_VIEWPORT_HEIGHT :: 0
|
||||
D3D12_DEFAULT_VIEWPORT_MAX_DEPTH :: 0.0
|
||||
D3D12_DEFAULT_VIEWPORT_MIN_DEPTH :: 0.0
|
||||
D3D12_DEFAULT_VIEWPORT_TOPLEFTX :: 0
|
||||
D3D12_DEFAULT_VIEWPORT_TOPLEFTY :: 0
|
||||
D3D12_DEFAULT_VIEWPORT_WIDTH :: 0
|
||||
|
||||
D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND :: 0xffffffff
|
||||
|
||||
D3D12_DRIVER_RESERVED_REGISTER_SPACE_VALUES_END :: 0xfffffff7
|
||||
D3D12_DRIVER_RESERVED_REGISTER_SPACE_VALUES_START :: 0xfffffff0
|
||||
|
||||
D3D12_DS_INPUT_CONTROL_POINTS_MAX_TOTAL_SCALARS :: 3968
|
||||
D3D12_DS_INPUT_CONTROL_POINT_REGISTER_COMPONENTS :: 4
|
||||
D3D12_DS_INPUT_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT :: 32
|
||||
D3D12_DS_INPUT_CONTROL_POINT_REGISTER_COUNT :: 32
|
||||
D3D12_DS_INPUT_CONTROL_POINT_REGISTER_READS_PER_INST :: 2
|
||||
D3D12_DS_INPUT_CONTROL_POINT_REGISTER_READ_PORTS :: 1
|
||||
D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_COMPONENTS :: 3
|
||||
D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_COMPONENT_BIT_COUNT :: 32
|
||||
D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_COUNT :: 1
|
||||
D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_READS_PER_INST :: 2
|
||||
D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_READ_PORTS :: 1
|
||||
D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_COMPONENTS :: 4
|
||||
D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_COMPONENT_BIT_COUNT :: 32
|
||||
D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_COUNT :: 32
|
||||
D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_READS_PER_INST :: 2
|
||||
D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_READ_PORTS :: 1
|
||||
D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENTS :: 1
|
||||
D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENT_BIT_COUNT :: 32
|
||||
D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_COUNT :: 1
|
||||
D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_READS_PER_INST :: 2
|
||||
D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_READ_PORTS :: 1
|
||||
D3D12_DS_OUTPUT_REGISTER_COMPONENTS :: 4
|
||||
D3D12_DS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT :: 32
|
||||
D3D12_DS_OUTPUT_REGISTER_COUNT :: 32
|
||||
|
||||
D3D12_FLOAT16_FUSED_TOLERANCE_IN_ULP :: 0.6
|
||||
D3D12_FLOAT32_MAX :: 3.402823466e+38
|
||||
D3D12_FLOAT32_TO_INTEGER_TOLERANCE_IN_ULP :: 0.6
|
||||
D3D12_FLOAT_TO_SRGB_EXPONENT_DENOMINATOR :: 2.4
|
||||
D3D12_FLOAT_TO_SRGB_EXPONENT_NUMERATOR :: 1.0
|
||||
D3D12_FLOAT_TO_SRGB_OFFSET :: 0.055
|
||||
D3D12_FLOAT_TO_SRGB_SCALE_1 :: 12.92
|
||||
D3D12_FLOAT_TO_SRGB_SCALE_2 :: 1.055
|
||||
D3D12_FLOAT_TO_SRGB_THRESHOLD :: 0.0031308
|
||||
D3D12_FTOI_INSTRUCTION_MAX_INPUT :: 2147483647.999
|
||||
D3D12_FTOI_INSTRUCTION_MIN_INPUT :: -2147483648.999
|
||||
D3D12_FTOU_INSTRUCTION_MAX_INPUT :: 4294967295.999
|
||||
D3D12_FTOU_INSTRUCTION_MIN_INPUT :: 0.0
|
||||
|
||||
D3D12_GS_INPUT_INSTANCE_ID_READS_PER_INST :: 2
|
||||
D3D12_GS_INPUT_INSTANCE_ID_READ_PORTS :: 1
|
||||
D3D12_GS_INPUT_INSTANCE_ID_REGISTER_COMPONENTS :: 1
|
||||
D3D12_GS_INPUT_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT :: 32
|
||||
D3D12_GS_INPUT_INSTANCE_ID_REGISTER_COUNT :: 1
|
||||
D3D12_GS_INPUT_PRIM_CONST_REGISTER_COMPONENTS :: 1
|
||||
D3D12_GS_INPUT_PRIM_CONST_REGISTER_COMPONENT_BIT_COUNT :: 32
|
||||
D3D12_GS_INPUT_PRIM_CONST_REGISTER_COUNT :: 1
|
||||
D3D12_GS_INPUT_PRIM_CONST_REGISTER_READS_PER_INST :: 2
|
||||
D3D12_GS_INPUT_PRIM_CONST_REGISTER_READ_PORTS :: 1
|
||||
D3D12_GS_INPUT_REGISTER_COMPONENTS :: 4
|
||||
D3D12_GS_INPUT_REGISTER_COMPONENT_BIT_COUNT :: 32
|
||||
D3D12_GS_INPUT_REGISTER_COUNT :: 32
|
||||
D3D12_GS_INPUT_REGISTER_READS_PER_INST :: 2
|
||||
D3D12_GS_INPUT_REGISTER_READ_PORTS :: 1
|
||||
D3D12_GS_INPUT_REGISTER_VERTICES :: 32
|
||||
D3D12_GS_MAX_INSTANCE_COUNT :: 32
|
||||
D3D12_GS_MAX_OUTPUT_VERTEX_COUNT_ACROSS_INSTANCES :: 1024
|
||||
D3D12_GS_OUTPUT_ELEMENTS :: 32
|
||||
D3D12_GS_OUTPUT_REGISTER_COMPONENTS :: 4
|
||||
D3D12_GS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT :: 32
|
||||
D3D12_GS_OUTPUT_REGISTER_COUNT :: 32
|
||||
|
||||
D3D12_HS_CONTROL_POINT_PHASE_INPUT_REGISTER_COUNT :: 32
|
||||
D3D12_HS_CONTROL_POINT_PHASE_OUTPUT_REGISTER_COUNT :: 32
|
||||
D3D12_HS_CONTROL_POINT_REGISTER_COMPONENTS :: 4
|
||||
D3D12_HS_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT :: 32
|
||||
D3D12_HS_CONTROL_POINT_REGISTER_READS_PER_INST :: 2
|
||||
D3D12_HS_CONTROL_POINT_REGISTER_READ_PORTS :: 1
|
||||
D3D12_HS_FORK_PHASE_INSTANCE_COUNT_UPPER_BOUND :: 0xffffffff
|
||||
D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COMPONENTS :: 1
|
||||
D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT :: 32
|
||||
D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COUNT :: 1
|
||||
D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_READS_PER_INST :: 2
|
||||
D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_READ_PORTS :: 1
|
||||
D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COMPONENTS :: 1
|
||||
D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT :: 32
|
||||
D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COUNT :: 1
|
||||
D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_READS_PER_INST :: 2
|
||||
D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_READ_PORTS :: 1
|
||||
D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENTS :: 1
|
||||
D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENT_BIT_COUNT :: 32
|
||||
D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_COUNT :: 1
|
||||
D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_READS_PER_INST :: 2
|
||||
D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_READ_PORTS :: 1
|
||||
D3D12_HS_JOIN_PHASE_INSTANCE_COUNT_UPPER_BOUND :: 0xffffffff
|
||||
D3D12_HS_MAXTESSFACTOR_LOWER_BOUND :: 1.0
|
||||
D3D12_HS_MAXTESSFACTOR_UPPER_BOUND :: 64.0
|
||||
D3D12_HS_OUTPUT_CONTROL_POINTS_MAX_TOTAL_SCALARS :: 3968
|
||||
D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COMPONENTS :: 1
|
||||
D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COMPONENT_BIT_COUNT :: 32
|
||||
D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COUNT :: 1
|
||||
D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_READS_PER_INST :: 2
|
||||
D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_READ_PORTS :: 1
|
||||
D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COMPONENTS :: 4
|
||||
D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COMPONENT_BIT_COUNT :: 32
|
||||
D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COUNT :: 32
|
||||
D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_READS_PER_INST :: 2
|
||||
D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_READ_PORTS :: 1
|
||||
D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_SCALAR_COMPONENTS :: 128
|
||||
|
||||
D3D12_IA_DEFAULT_INDEX_BUFFER_OFFSET_IN_BYTES :: 0
|
||||
D3D12_IA_DEFAULT_PRIMITIVE_TOPOLOGY :: 0
|
||||
D3D12_IA_DEFAULT_VERTEX_BUFFER_OFFSET_IN_BYTES :: 0
|
||||
D3D12_IA_INDEX_INPUT_RESOURCE_SLOT_COUNT :: 1
|
||||
D3D12_IA_INSTANCE_ID_BIT_COUNT :: 32
|
||||
D3D12_IA_INTEGER_ARITHMETIC_BIT_COUNT :: 32
|
||||
D3D12_IA_PATCH_MAX_CONTROL_POINT_COUNT :: 32
|
||||
D3D12_IA_PRIMITIVE_ID_BIT_COUNT :: 32
|
||||
D3D12_IA_VERTEX_ID_BIT_COUNT :: 32
|
||||
D3D12_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT :: 32
|
||||
D3D12_IA_VERTEX_INPUT_STRUCTURE_ELEMENTS_COMPONENTS :: 128
|
||||
D3D12_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT :: 32
|
||||
|
||||
D3D12_INTEGER_DIVIDE_BY_ZERO_QUOTIENT :: 0xffffffff
|
||||
D3D12_INTEGER_DIVIDE_BY_ZERO_REMAINDER :: 0xffffffff
|
||||
|
||||
D3D12_KEEP_RENDER_TARGETS_AND_DEPTH_STENCIL :: 0xffffffff
|
||||
D3D12_KEEP_UNORDERED_ACCESS_VIEWS :: 0xffffffff
|
||||
|
||||
D3D12_LINEAR_GAMMA :: 1.0
|
||||
D3D12_MAJOR_VERSION :: 12
|
||||
|
||||
D3D12_MAX_BORDER_COLOR_COMPONENT :: 1.0
|
||||
D3D12_MAX_DEPTH :: 1.0
|
||||
D3D12_MAX_LIVE_STATIC_SAMPLERS :: 2032
|
||||
D3D12_MAX_MAXANISOTROPY :: 16
|
||||
D3D12_MAX_MULTISAMPLE_SAMPLE_COUNT :: 32
|
||||
D3D12_MAX_POSITION_VALUE :: 3.402823466e+34D3D12_MAX_ROOT_COST :: 64
|
||||
D3D12_MAX_SHADER_VISIBLE_DESCRIPTOR_HEAP_SIZE_TIER_1 :: 1000000
|
||||
D3D12_MAX_SHADER_VISIBLE_DESCRIPTOR_HEAP_SIZE_TIER_2 :: 1000000
|
||||
D3D12_MAX_SHADER_VISIBLE_SAMPLER_HEAP_SIZE :: 2048
|
||||
D3D12_MAX_TEXTURE_DIMENSION_2_TO_EXP :: 17
|
||||
D3D12_MAX_VIEW_INSTANCE_COUNT :: 4
|
||||
|
||||
D3D12_MINOR_VERSION :: 0
|
||||
|
||||
D3D12_MIN_BORDER_COLOR_COMPONENT :: 0.0
|
||||
D3D12_MIN_DEPTH :: 0.0
|
||||
D3D12_MIN_MAXANISOTROPY :: 0
|
||||
|
||||
D3D12_MIP_LOD_BIAS_MAX :: 15.99
|
||||
D3D12_MIP_LOD_BIAS_MIN :: -16.0
|
||||
D3D12_MIP_LOD_FRACTIONAL_BIT_COUNT :: 8
|
||||
D3D12_MIP_LOD_RANGE_BIT_COUNT :: 8
|
||||
|
||||
D3D12_MULTISAMPLE_ANTIALIAS_LINE_WIDTH :: 1.4
|
||||
D3D12_NONSAMPLE_FETCH_OUT_OF_RANGE_ACCESS_RESULT :: 0
|
||||
|
||||
D3D12_OS_RESERVED_REGISTER_SPACE_VALUES_END :: 0xffffffff
|
||||
D3D12_OS_RESERVED_REGISTER_SPACE_VALUES_START :: 0xfffffff8
|
||||
|
||||
D3D12_PACKED_TILE :: 0xffffffff
|
||||
|
||||
D3D12_PIXEL_ADDRESS_RANGE_BIT_COUNT :: 15
|
||||
|
||||
D3D12_PRE_SCISSOR_PIXEL_ADDRESS_RANGE_BIT_COUNT :: 16
|
||||
|
||||
D3D12_PS_CS_UAV_REGISTER_COMPONENTS :: 1
|
||||
D3D12_PS_CS_UAV_REGISTER_COUNT :: 8
|
||||
D3D12_PS_CS_UAV_REGISTER_READS_PER_INST :: 1
|
||||
D3D12_PS_CS_UAV_REGISTER_READ_PORTS :: 1
|
||||
D3D12_PS_FRONTFACING_DEFAULT_VALUE :: 0xffffffff
|
||||
D3D12_PS_FRONTFACING_FALSE_VALUE :: 0
|
||||
D3D12_PS_FRONTFACING_TRUE_VALUE :: 0xffffffff
|
||||
D3D12_PS_INPUT_REGISTER_COMPONENTS :: 4
|
||||
D3D12_PS_INPUT_REGISTER_COMPONENT_BIT_COUNT :: 32
|
||||
D3D12_PS_INPUT_REGISTER_COUNT :: 32
|
||||
D3D12_PS_INPUT_REGISTER_READS_PER_INST :: 2
|
||||
D3D12_PS_INPUT_REGISTER_READ_PORTS :: 1
|
||||
D3D12_PS_LEGACY_PIXEL_CENTER_FRACTIONAL_COMPONENT :: 0.0
|
||||
D3D12_PS_OUTPUT_DEPTH_REGISTER_COMPONENTS :: 1
|
||||
D3D12_PS_OUTPUT_DEPTH_REGISTER_COMPONENT_BIT_COUNT :: 32
|
||||
D3D12_PS_OUTPUT_DEPTH_REGISTER_COUNT :: 1
|
||||
D3D12_PS_OUTPUT_MASK_REGISTER_COMPONENTS :: 1
|
||||
D3D12_PS_OUTPUT_MASK_REGISTER_COMPONENT_BIT_COUNT :: 32
|
||||
D3D12_PS_OUTPUT_MASK_REGISTER_COUNT :: 1
|
||||
D3D12_PS_OUTPUT_REGISTER_COMPONENTS :: 4
|
||||
D3D12_PS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT :: 32
|
||||
D3D12_PS_OUTPUT_REGISTER_COUNT :: 8
|
||||
D3D12_PS_PIXEL_CENTER_FRACTIONAL_COMPONENT :: 0.5
|
||||
|
||||
D3D12_RAW_UAV_SRV_BYTE_ALIGNMENT :: 16
|
||||
|
||||
D3D12_RAYTRACING_AABB_BYTE_ALIGNMENT :: 8
|
||||
D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BYTE_ALIGNMENT :: 256
|
||||
D3D12_RAYTRACING_INSTANCE_DESCS_BYTE_ALIGNMENT :: 16
|
||||
D3D12_RAYTRACING_MAX_ATTRIBUTE_SIZE_IN_BYTES :: 32
|
||||
D3D12_RAYTRACING_MAX_DECLARABLE_TRACE_RECURSION_DEPTH :: 31
|
||||
D3D12_RAYTRACING_MAX_GEOMETRIES_PER_BOTTOM_LEVEL_ACCELERATION_STRUCTURE :: 16777216
|
||||
D3D12_RAYTRACING_MAX_INSTANCES_PER_TOP_LEVEL_ACCELERATION_STRUCTURE :: 16777216
|
||||
D3D12_RAYTRACING_MAX_PRIMITIVES_PER_BOTTOM_LEVEL_ACCELERATION_STRUCTURE :: 536870912
|
||||
D3D12_RAYTRACING_MAX_RAY_GENERATION_SHADER_THREADS :: 1073741824
|
||||
D3D12_RAYTRACING_MAX_SHADER_RECORD_STRIDE :: 4096
|
||||
D3D12_RAYTRACING_SHADER_RECORD_BYTE_ALIGNMENT :: 32
|
||||
D3D12_RAYTRACING_SHADER_TABLE_BYTE_ALIGNMENT :: 64
|
||||
D3D12_RAYTRACING_TRANSFORM3X4_BYTE_ALIGNMENT :: 16
|
||||
|
||||
D3D12_REQ_BLEND_OBJECT_COUNT_PER_DEVICE :: 4096
|
||||
D3D12_REQ_BUFFER_RESOURCE_TEXEL_COUNT_2_TO_EXP :: 27
|
||||
D3D12_REQ_CONSTANT_BUFFER_ELEMENT_COUNT :: 4096
|
||||
D3D12_REQ_DEPTH_STENCIL_OBJECT_COUNT_PER_DEVICE :: 4096
|
||||
D3D12_REQ_DRAWINDEXED_INDEX_COUNT_2_TO_EXP :: 32
|
||||
D3D12_REQ_DRAW_VERTEX_COUNT_2_TO_EXP :: 32
|
||||
D3D12_REQ_FILTERING_HW_ADDRESSABLE_RESOURCE_DIMENSION :: 16384
|
||||
D3D12_REQ_GS_INVOCATION_32BIT_OUTPUT_COMPONENT_LIMIT :: 1024
|
||||
D3D12_REQ_IMMEDIATE_CONSTANT_BUFFER_ELEMENT_COUNT :: 4096
|
||||
D3D12_REQ_MAXANISOTROPY :: 16
|
||||
D3D12_REQ_MIP_LEVELS :: 15
|
||||
D3D12_REQ_MULTI_ELEMENT_STRUCTURE_SIZE_IN_BYTES :: 2048
|
||||
D3D12_REQ_RASTERIZER_OBJECT_COUNT_PER_DEVICE :: 4096
|
||||
D3D12_REQ_RENDER_TO_BUFFER_WINDOW_WIDTH :: 16384
|
||||
D3D12_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_A_TERM :: 128
|
||||
D3D12_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_B_TERM :: 0.25
|
||||
D3D12_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_C_TERM :: 2048
|
||||
D3D12_REQ_RESOURCE_VIEW_COUNT_PER_DEVICE_2_TO_EXP :: 20
|
||||
D3D12_REQ_SAMPLER_OBJECT_COUNT_PER_DEVICE :: 4096
|
||||
D3D12_REQ_SUBRESOURCES :: 30720
|
||||
D3D12_REQ_TEXTURE1D_ARRAY_AXIS_DIMENSION :: 2048
|
||||
D3D12_REQ_TEXTURE1D_U_DIMENSION :: 16384
|
||||
D3D12_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION :: 2048
|
||||
D3D12_REQ_TEXTURE2D_U_OR_V_DIMENSION :: 16384
|
||||
D3D12_REQ_TEXTURE3D_U_V_OR_W_DIMENSION :: 2048
|
||||
D3D12_REQ_TEXTURECUBE_DIMENSION :: 16384
|
||||
|
||||
D3D12_RESINFO_INSTRUCTION_MISSING_COMPONENT_RETVAL :: 0
|
||||
|
||||
D3D12_RESOURCE_BARRIER_ALL_SUBRESOURCES :: 0xffffffff
|
||||
|
||||
D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT :: 2
|
||||
|
||||
D3D12_SHADER_IDENTIFIER_SIZE_IN_BYTES :: 32
|
||||
D3D12_SHADER_MAJOR_VERSION :: 5
|
||||
D3D12_SHADER_MAX_INSTANCES :: 65535
|
||||
D3D12_SHADER_MAX_INTERFACES :: 253
|
||||
D3D12_SHADER_MAX_INTERFACE_CALL_SITES :: 4096
|
||||
D3D12_SHADER_MAX_TYPES :: 65535
|
||||
D3D12_SHADER_MINOR_VERSION :: 1
|
||||
|
||||
D3D12_SHIFT_INSTRUCTION_PAD_VALUE :: 0
|
||||
D3D12_SHIFT_INSTRUCTION_SHIFT_VALUE_BIT_COUNT :: 5
|
||||
|
||||
D3D12_SIMULTANEOUS_RENDER_TARGET_COUNT :: 8
|
||||
|
||||
D3D12_SMALL_MSAA_RESOURCE_PLACEMENT_ALIGNMENT :: 65536
|
||||
D3D12_SMALL_RESOURCE_PLACEMENT_ALIGNMENT :: 4096
|
||||
|
||||
D3D12_SO_BUFFER_MAX_STRIDE_IN_BYTES :: 2048
|
||||
D3D12_SO_BUFFER_MAX_WRITE_WINDOW_IN_BYTES :: 512
|
||||
D3D12_SO_BUFFER_SLOT_COUNT :: 4
|
||||
D3D12_SO_DDI_REGISTER_INDEX_DENOTING_GAP :: 0xffffffff
|
||||
D3D12_SO_NO_RASTERIZED_STREAM :: 0xffffffff
|
||||
D3D12_SO_OUTPUT_COMPONENT_COUNT :: 128
|
||||
D3D12_SO_STREAM_COUNT :: 4
|
||||
|
||||
D3D12_SPEC_DATE_DAY :: 14
|
||||
D3D12_SPEC_DATE_MONTH :: 11
|
||||
D3D12_SPEC_DATE_YEAR :: 2014
|
||||
D3D12_SPEC_VERSION :: 1.16
|
||||
|
||||
D3D12_SRGB_GAMMA :: 2.2
|
||||
D3D12_SRGB_TO_FLOAT_DENOMINATOR_1 :: 12.92
|
||||
D3D12_SRGB_TO_FLOAT_DENOMINATOR_2 :: 1.055
|
||||
D3D12_SRGB_TO_FLOAT_EXPONENT :: 2.4
|
||||
D3D12_SRGB_TO_FLOAT_OFFSET :: 0.055
|
||||
D3D12_SRGB_TO_FLOAT_THRESHOLD :: 0.04045
|
||||
D3D12_SRGB_TO_FLOAT_TOLERANCE_IN_ULP :: 0.5
|
||||
|
||||
D3D12_STANDARD_COMPONENT_BIT_COUNT :: 32
|
||||
D3D12_STANDARD_COMPONENT_BIT_COUNT_DOUBLED :: 64
|
||||
D3D12_STANDARD_MAXIMUM_ELEMENT_ALIGNMENT_BYTE_MULTIPLE :: 4
|
||||
D3D12_STANDARD_PIXEL_COMPONENT_COUNT :: 128
|
||||
D3D12_STANDARD_PIXEL_ELEMENT_COUNT :: 32
|
||||
D3D12_STANDARD_VECTOR_SIZE :: 4
|
||||
D3D12_STANDARD_VERTEX_ELEMENT_COUNT :: 32
|
||||
D3D12_STANDARD_VERTEX_TOTAL_COMPONENT_COUNT :: 64
|
||||
|
||||
D3D12_SUBPIXEL_FRACTIONAL_BIT_COUNT :: 8
|
||||
D3D12_SUBTEXEL_FRACTIONAL_BIT_COUNT :: 8
|
||||
|
||||
D3D12_SYSTEM_RESERVED_REGISTER_SPACE_VALUES_END :: 0xffffffff
|
||||
D3D12_SYSTEM_RESERVED_REGISTER_SPACE_VALUES_START :: 0xfffffff0
|
||||
|
||||
D3D12_TESSELLATOR_MAX_EVEN_TESSELLATION_FACTOR :: 64
|
||||
D3D12_TESSELLATOR_MAX_ISOLINE_DENSITY_TESSELLATION_FACTOR :: 64
|
||||
D3D12_TESSELLATOR_MAX_ODD_TESSELLATION_FACTOR :: 63
|
||||
D3D12_TESSELLATOR_MAX_TESSELLATION_FACTOR :: 64
|
||||
D3D12_TESSELLATOR_MIN_EVEN_TESSELLATION_FACTOR :: 2
|
||||
D3D12_TESSELLATOR_MIN_ISOLINE_DENSITY_TESSELLATION_FACTOR :: 1
|
||||
D3D12_TESSELLATOR_MIN_ODD_TESSELLATION_FACTOR :: 1
|
||||
|
||||
D3D12_TEXEL_ADDRESS_RANGE_BIT_COUNT :: 16
|
||||
|
||||
D3D12_TEXTURE_DATA_PITCH_ALIGNMENT :: 256
|
||||
D3D12_TEXTURE_DATA_PLACEMENT_ALIGNMENT :: 512
|
||||
|
||||
D3D12_TILED_RESOURCE_TILE_SIZE_IN_BYTES :: 65536
|
||||
|
||||
D3D12_TRACKED_WORKLOAD_MAX_INSTANCES :: 32
|
||||
|
||||
D3D12_UAV_COUNTER_PLACEMENT_ALIGNMENT :: 4096
|
||||
D3D12_UAV_SLOT_COUNT :: 64
|
||||
|
||||
D3D12_UNBOUND_MEMORY_ACCESS_RESULT :: 0
|
||||
|
||||
D3D12_VIDEO_DECODE_MAX_ARGUMENTS :: 10
|
||||
D3D12_VIDEO_DECODE_MAX_HISTOGRAM_COMPONENTS :: 4
|
||||
D3D12_VIDEO_DECODE_MIN_BITSTREAM_OFFSET_ALIGNMENT :: 256
|
||||
D3D12_VIDEO_DECODE_MIN_HISTOGRAM_OFFSET_ALIGNMENT :: 256
|
||||
D3D12_VIDEO_DECODE_STATUS_MACROBLOCKS_AFFECTED_UNKNOWN :: 0xffffffff
|
||||
D3D12_VIDEO_PROCESS_MAX_FILTERS :: 32
|
||||
D3D12_VIDEO_PROCESS_STEREO_VIEWS :: 2
|
||||
|
||||
D3D12_VIEWPORT_AND_SCISSORRECT_MAX_INDEX :: 15
|
||||
D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE :: 16
|
||||
D3D12_VIEWPORT_BOUNDS_MAX :: 32767
|
||||
D3D12_VIEWPORT_BOUNDS_MIN :: -32768
|
||||
|
||||
D3D12_VS_INPUT_REGISTER_COMPONENTS :: 4
|
||||
D3D12_VS_INPUT_REGISTER_COMPONENT_BIT_COUNT :: 32
|
||||
D3D12_VS_INPUT_REGISTER_COUNT :: 32
|
||||
D3D12_VS_INPUT_REGISTER_READS_PER_INST :: 2
|
||||
D3D12_VS_INPUT_REGISTER_READ_PORTS :: 1
|
||||
D3D12_VS_OUTPUT_REGISTER_COMPONENTS :: 4
|
||||
D3D12_VS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT :: 32
|
||||
D3D12_VS_OUTPUT_REGISTER_COUNT :: 32
|
||||
|
||||
D3D12_WHQL_CONTEXT_COUNT_FOR_RESOURCE_LIMIT :: 10
|
||||
D3D12_WHQL_DRAWINDEXED_INDEX_COUNT_2_TO_EXP :: 25
|
||||
D3D12_WHQL_DRAW_VERTEX_COUNT_2_TO_EXP :: 25
|
||||
|
||||
D3D12_SHADER_COMPONENT_MAPPING_MASK :: 0x7
|
||||
D3D12_SHADER_COMPONENT_MAPPING_SHIFT :: 3
|
||||
|
||||
D3D12_FILTER_REDUCTION_TYPE_MASK :: 0x3
|
||||
D3D12_FILTER_REDUCTION_TYPE_SHIFT :: 7
|
||||
D3D12_FILTER_TYPE_MASK :: 0x3
|
||||
|
||||
D3D12_MIN_FILTER_SHIFT :: 4
|
||||
D3D12_MAG_FILTER_SHIFT :: 2
|
||||
D3D12_MIP_FILTER_SHIFT :: 0
|
||||
|
||||
D3D12_ANISOTROPIC_FILTERING_BIT :: 0x40
|
||||
|
||||
D3D12_INFO_QUEUE_DEFAULT_MESSAGE_COUNT_LIMIT :: 1024
|
||||
|
||||
D3D12_SHADING_RATE_X_AXIS_SHIFT :: 2
|
||||
D3D12_SHADING_RATE_VALID_MASK :: 3
|
||||
|
||||
D3D_RETURN_PARAMETER_INDEX :: -1
|
||||
|
||||
D3D_SHADER_REQUIRES_DOUBLES :: 0x00000001
|
||||
D3D_SHADER_REQUIRES_EARLY_DEPTH_STENCIL :: 0x00000002
|
||||
D3D_SHADER_REQUIRES_UAVS_AT_EVERY_STAGE :: 0x00000004
|
||||
D3D_SHADER_REQUIRES_64_UAVS :: 0x00000008
|
||||
D3D_SHADER_REQUIRES_MINIMUM_PRECISION :: 0x00000010
|
||||
D3D_SHADER_REQUIRES_11_1_DOUBLE_EXTENSIONS :: 0x00000020
|
||||
D3D_SHADER_REQUIRES_11_1_SHADER_EXTENSIONS :: 0x00000040
|
||||
D3D_SHADER_REQUIRES_LEVEL_9_COMPARISON_FILTERING :: 0x00000080
|
||||
D3D_SHADER_REQUIRES_TILED_RESOURCES :: 0x00000100
|
||||
D3D_SHADER_REQUIRES_STENCIL_REF :: 0x00000200
|
||||
D3D_SHADER_REQUIRES_INNER_COVERAGE :: 0x00000400
|
||||
D3D_SHADER_REQUIRES_TYPED_UAV_LOAD_ADDITIONAL_FORMATS :: 0x00000800
|
||||
D3D_SHADER_REQUIRES_ROVS :: 0x00001000
|
||||
D3D_SHADER_REQUIRES_VIEWPORT_AND_RT_ARRAY_INDEX_FROM_ANY_SHADER_FEEDING_RASTERIZER :: 0x00002000
|
||||
+228
@@ -0,0 +1,228 @@
|
||||
package directx_d3d_compiler
|
||||
|
||||
foreign import d3dcompiler "d3dcompiler_47.lib"
|
||||
|
||||
D3DCOMPILER_DLL_A :: "d3dcompiler_47.dll"
|
||||
COMPILER_VERSION :: 47
|
||||
|
||||
|
||||
import "../dxgi"
|
||||
|
||||
BOOL :: dxgi.BOOL
|
||||
IID :: dxgi.IID
|
||||
SIZE_T :: dxgi.SIZE_T
|
||||
HRESULT :: dxgi.HRESULT
|
||||
IUnknown :: dxgi.IUnknown
|
||||
IUnknown_VTable :: dxgi.IUnknown_VTable
|
||||
|
||||
@(default_calling_convention="stdcall", link_prefix="D3D")
|
||||
foreign d3dcompiler {
|
||||
ReadFileToBlob :: proc(pFileName: [^]u16, ppContents: ^^ID3DBlob) -> HRESULT ---
|
||||
WriteBlobToFile :: proc(pBlob: ^ID3DBlob, pFileName: [^]u16, bOverwrite: BOOL) -> HRESULT ---
|
||||
Compile :: proc(pSrcData: rawptr, SrcDataSize: SIZE_T, pSourceName: cstring, pDefines: ^SHADER_MACRO, pInclude: ^ID3DInclude, pEntrypoint: cstring, pTarget: cstring, Flags1: u32, Flags2: u32, ppCode: ^^ID3DBlob, ppErrorMsgs: ^^ID3DBlob) -> HRESULT ---
|
||||
Compile2 :: proc(pSrcData: rawptr, SrcDataSize: SIZE_T, pSourceName: cstring, pDefines: ^SHADER_MACRO, pInclude: ^ID3DInclude, pEntrypoint: cstring, pTarget: cstring, Flags1: u32, Flags2: u32, SecondaryDataFlags: u32, pSecondaryData: rawptr, SecondaryDataSize: SIZE_T, ppCode: ^^ID3DBlob, ppErrorMsgs: ^^ID3DBlob) -> HRESULT ---
|
||||
CompileFromFile :: proc(pFileName: [^]u16, pDefines: ^SHADER_MACRO, pInclude: ^ID3DInclude, pEntrypoint: cstring, pTarget: cstring, Flags1: u32, Flags2: u32, ppCode: ^^ID3DBlob, ppErrorMsgs: ^^ID3DBlob) -> HRESULT ---
|
||||
Preprocess :: proc(pSrcData: rawptr, SrcDataSize: SIZE_T, pSourceName: cstring, pDefines: ^SHADER_MACRO, pInclude: ^ID3DInclude, ppCodeText: ^^ID3DBlob, ppErrorMsgs: ^^ID3DBlob) -> HRESULT ---
|
||||
GetDebugInfo :: proc(pSrcData: rawptr, SrcDataSize: SIZE_T, ppDebugInfo: ^^ID3DBlob) -> HRESULT ---
|
||||
Reflect :: proc(pSrcData: rawptr, SrcDataSize: SIZE_T, pInterface: ^IID, ppReflector: ^rawptr) -> HRESULT ---
|
||||
ReflectLibrary :: proc(pSrcData: rawptr, SrcDataSize: SIZE_T, riid: ^IID, ppReflector: ^rawptr) -> HRESULT ---
|
||||
Disassemble :: proc(pSrcData: rawptr, SrcDataSize: SIZE_T, Flags: u32, szComments: cstring, ppDisassembly: ^^ID3DBlob) -> HRESULT ---
|
||||
DisassembleRegion :: proc(pSrcData: rawptr, SrcDataSize: SIZE_T, Flags: u32, szComments: cstring, StartByteOffset: SIZE_T, NumInsts: SIZE_T, pFinishByteOffset: ^SIZE_T, ppDisassembly: ^^ID3DBlob) -> HRESULT ---
|
||||
CreateLinker :: proc(ppLinker: ^^ID3D11Linker) -> HRESULT ---
|
||||
LoadModule :: proc(pSrcData: rawptr, cbSrcDataSize: SIZE_T, ppModule: ^^ID3D11Module) -> HRESULT ---
|
||||
GetTraceInstructionOffsets :: proc(pSrcData: rawptr, SrcDataSize: SIZE_T, Flags: u32, StartInstIndex: SIZE_T, NumInsts: SIZE_T, pOffsets: ^SIZE_T, pTotalInsts: ^SIZE_T) -> HRESULT ---
|
||||
GetInputSignatureBlob :: proc(pSrcData: rawptr, SrcDataSize: SIZE_T, ppSignatureBlob: ^^ID3DBlob) -> HRESULT ---
|
||||
GetOutputSignatureBlob :: proc(pSrcData: rawptr, SrcDataSize: SIZE_T, ppSignatureBlob: ^^ID3DBlob) -> HRESULT ---
|
||||
GetInputAndOutputSignatureBlob :: proc(pSrcData: rawptr, SrcDataSize: SIZE_T, ppSignatureBlob: ^^ID3DBlob) -> HRESULT ---
|
||||
StripShader :: proc(pShaderBytecode: rawptr, BytecodeLength: SIZE_T, uStripFlags: u32, ppStrippedBlob: ^^ID3DBlob) -> HRESULT ---
|
||||
GetBlobPart :: proc(pSrcData: rawptr, SrcDataSize: SIZE_T, Part: BLOB_PART, Flags: u32, ppPart: ^^ID3DBlob) -> HRESULT ---
|
||||
SetBlobPart :: proc(pSrcData: rawptr, SrcDataSize: SIZE_T, Part: BLOB_PART, Flags: u32, pPart: rawptr, PartSize: SIZE_T, ppNewShader: ^^ID3DBlob) -> HRESULT ---
|
||||
CreateBlob :: proc(Size: SIZE_T, ppBlob: ^^ID3DBlob) -> HRESULT ---
|
||||
CompressShaders :: proc(uNumShaders: u32, pShaderData: ^SHADER_DATA, uFlags: u32, ppCompressedData: ^^ID3DBlob) -> HRESULT ---
|
||||
DecompressShaders :: proc(pSrcData: rawptr, SrcDataSize: SIZE_T, uNumShaders: u32, uStartIndex: u32, pIndices: ^u32, uFlags: u32, ppShaders: ^^ID3DBlob, pTotalShaders: ^u32) -> HRESULT ---
|
||||
Disassemble10Effect :: proc(pEffect: ^ID3D10Effect, Flags: u32, ppDisassembly: ^^ID3DBlob) -> HRESULT ---
|
||||
}
|
||||
|
||||
|
||||
|
||||
D3DCOMPILE :: enum u32 { // TODO: make bit_field
|
||||
DEBUG = 1 << 0,
|
||||
SKIP_VALIDATION = 1 << 1,
|
||||
SKIP_OPTIMIZATION = 1 << 2,
|
||||
PACK_MATRIX_ROW_MAJOR = 1 << 3,
|
||||
PACK_MATRIX_COLUMN_MAJOR = 1 << 4,
|
||||
PARTIAL_PRECISION = 1 << 5,
|
||||
FORCE_VS_SOFTWARE_NO_OPT = 1 << 6,
|
||||
FORCE_PS_SOFTWARE_NO_OPT = 1 << 7,
|
||||
NO_PRESHADER = 1 << 8,
|
||||
AVOID_FLOW_CONTROL = 1 << 9,
|
||||
PREFER_FLOW_CONTROL = 1 << 10,
|
||||
ENABLE_STRICTNESS = 1 << 11,
|
||||
ENABLE_BACKWARDS_COMPATIBILITY = 1 << 12,
|
||||
IEEE_STRICTNESS = 1 << 13,
|
||||
OPTIMIZATION_LEVEL0 = 1 << 14,
|
||||
OPTIMIZATION_LEVEL1 = 0,
|
||||
OPTIMIZATION_LEVEL2 = (1 << 14)|(1 << 15), // Added manually
|
||||
OPTIMIZATION_LEVEL3 = 1 << 15,
|
||||
RESERVED16 = 1 << 16,
|
||||
RESERVED17 = 1 << 17,
|
||||
WARNINGS_ARE_ERRORS = 1 << 18,
|
||||
RESOURCES_MAY_ALIAS = 1 << 19,
|
||||
ENABLE_UNBOUNDED_DESCRIPTOR_TABLES = 1 << 20,
|
||||
ALL_RESOURCES_BOUND = 1 << 21,
|
||||
DEBUG_NAME_FOR_SOURCE = 1 << 22,
|
||||
DEBUG_NAME_FOR_BINARY = 1 << 23,
|
||||
}
|
||||
|
||||
EFFECT :: enum u32 { // TODO: make bit_field
|
||||
CHILD_EFFECT = 1 << 0,
|
||||
ALLOW_SLOW_OPS = 1 << 1,
|
||||
}
|
||||
|
||||
FLAGS2 :: enum u32 { // TODO: make bit_field
|
||||
FORCE_ROOT_SIGNATURE_LATEST = 0,
|
||||
FORCE_ROOT_SIGNATURE_1_0 = 1 << 4,
|
||||
FORCE_ROOT_SIGNATURE_1_1 = 1 << 5,
|
||||
}
|
||||
|
||||
SECDATA :: enum u32 { // TODO: make bit_field
|
||||
MERGE_UAV_SLOTS = 0x00000001,
|
||||
PRESERVE_TEMPLATE_SLOTS = 0x00000002,
|
||||
REQUIRE_TEMPLATE_MATCH = 0x00000004,
|
||||
}
|
||||
|
||||
DISASM_ENABLE_COLOR_CODE :: 0x00000001
|
||||
DISASM_ENABLE_DEFAULT_VALUE_PRINTS :: 0x00000002
|
||||
DISASM_ENABLE_INSTRUCTION_NUMBERING :: 0x00000004
|
||||
DISASM_ENABLE_INSTRUCTION_CYCLE :: 0x00000008
|
||||
DISASM_DISABLE_DEBUG_INFO :: 0x00000010
|
||||
DISASM_ENABLE_INSTRUCTION_OFFSET :: 0x00000020
|
||||
DISASM_INSTRUCTION_ONLY :: 0x00000040
|
||||
DISASM_PRINT_HEX_LITERALS :: 0x00000080
|
||||
|
||||
GET_INST_OFFSETS_INCLUDE_NON_EXECUTABLE :: 0x00000001
|
||||
|
||||
COMPRESS_SHADER_KEEP_ALL_PARTS :: 0x00000001
|
||||
|
||||
SHADER_MACRO :: struct {
|
||||
Name: cstring,
|
||||
Definition: cstring,
|
||||
}
|
||||
|
||||
ID3D10Blob_UUID_STRING :: "8BA5FB08-5195-40E2-AC58-0D989C3A0102"
|
||||
ID3D10Blob_UUID := &IID{0x8BA5FB08, 0x5195, 0x40E2, {0xAC, 0x58, 0x0D, 0x98, 0x9C, 0x3A, 0x01, 0x02}}
|
||||
ID3D10Blob :: struct #raw_union {
|
||||
#subtype iunknown: IUnknown,
|
||||
using id3d10blob_vtable: ^ID3D10Blob_VTable,
|
||||
}
|
||||
ID3D10Blob_VTable :: struct {
|
||||
using iunknown_vtable: IUnknown_VTable,
|
||||
GetBufferPointer: proc "stdcall" (this: ^ID3D10Blob) -> rawptr,
|
||||
GetBufferSize: proc "stdcall" (this: ^ID3D10Blob) -> SIZE_T,
|
||||
}
|
||||
|
||||
|
||||
ID3DBlob :: ID3D10Blob
|
||||
ID3DBlob_VTable :: ID3D10Blob_VTable
|
||||
|
||||
|
||||
INCLUDE_TYPE :: enum i32 {
|
||||
INCLUDE_LOCAL = 0,
|
||||
INCLUDE_SYSTEM = 1,
|
||||
_10_INCLUDE_LOCAL = 0,
|
||||
_10_INCLUDE_SYSTEM = 1,
|
||||
INCLUDE_FORCE_DWORD = 2147483647,
|
||||
}
|
||||
|
||||
ID3DInclude :: struct {
|
||||
vtable: ^ID3DInclude_VTable,
|
||||
}
|
||||
ID3DInclude_VTable :: struct {
|
||||
Open: proc "stdcall" (this: ^ID3DInclude, IncludeType: INCLUDE_TYPE, pFileName: cstring, pParentData: rawptr, ppData: ^rawptr, pBytes: ^u32) -> HRESULT,
|
||||
Close: proc "stdcall" (this: ^ID3DInclude, pData: rawptr) -> HRESULT,
|
||||
}
|
||||
|
||||
|
||||
ID3D11Module :: struct #raw_union {
|
||||
#subtype iunknown: IUnknown,
|
||||
using id3d11module_vtable: ^ID3D11Module_VTable,
|
||||
}
|
||||
ID3D11Module_VTable :: struct {
|
||||
using iunknown_vtable: IUnknown_VTable,
|
||||
CreateInstance: proc "stdcall" (this: ^ID3D11Module, pNamespace: cstring, ppModuleInstance: ^^ID3D11ModuleInstance) -> HRESULT,
|
||||
}
|
||||
|
||||
|
||||
ID3D11ModuleInstance :: struct #raw_union {
|
||||
#subtype iunknown: IUnknown,
|
||||
using id3d11moduleinstance_vtable: ^ID3D11ModuleInstance_VTable,
|
||||
}
|
||||
ID3D11ModuleInstance_VTable :: struct {
|
||||
using iunknown_vtable: IUnknown_VTable,
|
||||
BindConstantBuffer: proc "stdcall" (this: ^ID3D11ModuleInstance, uSrcSlot: u32, uDstSlot: u32, cbDstOffset: u32) -> HRESULT,
|
||||
BindConstantBufferByName: proc "stdcall" (this: ^ID3D11ModuleInstance, pName: cstring, uDstSlot: u32, cbDstOffset: u32) -> HRESULT,
|
||||
BindResource: proc "stdcall" (this: ^ID3D11ModuleInstance, uSrcSlot: u32, uDstSlot: u32, uCount: u32) -> HRESULT,
|
||||
BindResourceByName: proc "stdcall" (this: ^ID3D11ModuleInstance, pName: cstring, uDstSlot: u32, uCount: u32) -> HRESULT,
|
||||
BindSampler: proc "stdcall" (this: ^ID3D11ModuleInstance, uSrcSlot: u32, uDstSlot: u32, uCount: u32) -> HRESULT,
|
||||
BindSamplerByName: proc "stdcall" (this: ^ID3D11ModuleInstance, pName: cstring, uDstSlot: u32, uCount: u32) -> HRESULT,
|
||||
BindUnorderedAccessView: proc "stdcall" (this: ^ID3D11ModuleInstance, uSrcSlot: u32, uDstSlot: u32, uCount: u32) -> HRESULT,
|
||||
BindUnorderedAccessViewByName: proc "stdcall" (this: ^ID3D11ModuleInstance, pName: cstring, uDstSlot: u32, uCount: u32) -> HRESULT,
|
||||
BindResourceAsUnorderedAccessView: proc "stdcall" (this: ^ID3D11ModuleInstance, uSrcSrvSlot: u32, uDstUavSlot: u32, uCount: u32) -> HRESULT,
|
||||
BindResourceAsUnorderedAccessViewByName: proc "stdcall" (this: ^ID3D11ModuleInstance, pSrvName: cstring, uDstUavSlot: u32, uCount: u32) -> HRESULT,
|
||||
}
|
||||
|
||||
|
||||
ID3D11Linker :: struct #raw_union {
|
||||
#subtype iunknown: IUnknown,
|
||||
using id3d11linker_vtable: ^ID3D11Linker_VTable,
|
||||
}
|
||||
ID3D11Linker_VTable :: struct {
|
||||
using iunknown_vtable: IUnknown_VTable,
|
||||
Link: proc "stdcall" (this: ^ID3D11Linker, pEntry: ^ID3D11ModuleInstance, pEntryName: cstring, pTargetName: cstring, uFlags: u32, ppShaderBlob: ^^ID3DBlob, ppErrorBuffer: ^^ID3DBlob) -> HRESULT,
|
||||
UseLibrary: proc "stdcall" (this: ^ID3D11Linker, pLibraryMI: ^ID3D11ModuleInstance) -> HRESULT,
|
||||
AddClipPlaneFromCBuffer: proc "stdcall" (this: ^ID3D11Linker, uCBufferSlot: u32, uCBufferEntry: u32) -> HRESULT,
|
||||
}
|
||||
|
||||
|
||||
pD3DCompile :: #type proc "c" (a0: rawptr, a1: SIZE_T, a2: cstring, a3: ^SHADER_MACRO, a4: ^ID3DInclude, a5: cstring, a6: cstring, a7: u32, a8: u32, a9: ^^ID3DBlob, a10: ^^ID3DBlob) -> HRESULT
|
||||
pD3DPreprocess :: #type proc "c" (a0: rawptr, a1: SIZE_T, a2: cstring, a3: ^SHADER_MACRO, a4: ^ID3DInclude, a5: ^^ID3DBlob, a6: ^^ID3DBlob) -> HRESULT
|
||||
pD3DDisassemble :: #type proc "c" (a0: rawptr, a1: SIZE_T, a2: u32, a3: cstring, a4: ^^ID3DBlob) -> HRESULT
|
||||
|
||||
D3DCOMPILER_STRIP_FLAGS :: enum u32 { // TODO: make bit_field
|
||||
REFLECTION_DATA = 0x1,
|
||||
DEBUG_INFO = 0x2,
|
||||
TEST_BLOBS = 0x4,
|
||||
PRIVATE_DATA = 0x8,
|
||||
ROOT_SIGNATURE = 0x10,
|
||||
FORCE_DWORD = 0x7fffffff,
|
||||
}
|
||||
|
||||
BLOB_PART :: enum i32 {
|
||||
INPUT_SIGNATURE_BLOB = 0,
|
||||
OUTPUT_SIGNATURE_BLOB = 1,
|
||||
INPUT_AND_OUTPUT_SIGNATURE_BLOB = 2,
|
||||
PATCH_CONSTANT_SIGNATURE_BLOB = 3,
|
||||
ALL_SIGNATURE_BLOB = 4,
|
||||
DEBUG_INFO = 5,
|
||||
LEGACY_SHADER = 6,
|
||||
XNA_PREPASS_SHADER = 7,
|
||||
XNA_SHADER = 8,
|
||||
PDB = 9,
|
||||
PRIVATE_DATA = 10,
|
||||
ROOT_SIGNATURE = 11,
|
||||
DEBUG_NAME = 12,
|
||||
|
||||
TEST_ALTERNATE_SHADER = 32768,
|
||||
TEST_COMPILE_DETAILS = 32769,
|
||||
TEST_COMPILE_PERF = 32770,
|
||||
TEST_COMPILE_REPORT = 32771,
|
||||
}
|
||||
|
||||
SHADER_DATA :: struct {
|
||||
pBytecode: rawptr,
|
||||
BytecodeLength: SIZE_T,
|
||||
}
|
||||
|
||||
ID3D10Effect :: struct {
|
||||
// ????
|
||||
}
|
||||
BIN
Binary file not shown.
BIN
Binary file not shown.
Vendored
+1141
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user