Skip to main content

Module interfaces

Module interfaces 

Source
Expand description

The IFCE part of a Shader Model 5 program with class linkage (dynamic shader linkage): the classes that implement its interfaces, the class instances its constant buffers hold, and which function tables each interface slot can be bound to.

The layout below was read from containers fxc 10.0.26100.4654 built with one to thirty classes per interface, interface arrays, several interfaces, classes with data, textures and samplers, instance arrays, and pixel and hull programs, each checked against D3DDisassemble’s printing of the same tables. Words, from the start of the part:

  • 0 to 3: the counts of class instances, class types and slot records, and the number of interface slots;
  • 4 to 6: the byte offsets of the instance table (16 bytes a record), the type table (12) and the slot records (16);
  • 7 and 8: 0 in every container seen.

Offsets are from the start of the part; names are zero-terminated strings after the tables.

Structs§

ClassInstance
A class instance in a constant buffer, or an array of them (suns[3]).
ClassType
A class that implements an interface, by its place in the type table (its id).
InterfaceSlots
A run of interface slots (one interface pointer, or an array of them) and the classes that can be bound to it.
Interfaces
The IFCE part.

Functions§

interfaces
The container’s IFCE part; None without one. Refuses a container parts refuses and a part whose tables or names lie outside it, naming the word.