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§
- Class
Instance - A class instance in a constant buffer, or an array of them (
suns[3]). - Class
Type - A class that implements an interface, by its place in the type table (its id).
- Interface
Slots - A run of interface slots (one interface pointer, or an array of them) and the classes that can be bound to it.
- Interfaces
- The
IFCEpart.
Functions§
- interfaces
- The container’s
IFCEpart;Nonewithout one. Refuses a containerpartsrefuses and a part whose tables or names lie outside it, naming the word.