|
| 1 | +--- |
| 2 | +UID: NS:d3d12umddi.D3D12DDI_GENERIC_PROGRAM_DESC_0108 |
| 3 | +tech.root: display |
| 4 | +title: D3D12DDI_GENERIC_PROGRAM_DESC_0108 |
| 5 | +ms.date: 11/14/2025 |
| 6 | +targetos: Windows |
| 7 | +description: The D3D12DDI_GENERIC_PROGRAM_DESC_0108 structure describes a generic program state subobject that contains shader exports and associated configuration subobjects within a state object. |
| 8 | +prerelease: false |
| 9 | +req.construct-type: structure |
| 10 | +req.ddi-compliance: |
| 11 | +req.dll: |
| 12 | +req.header: d3d12umddi.h |
| 13 | +req.include-header: |
| 14 | +req.kmdf-ver: |
| 15 | +req.lib: |
| 16 | +req.max-support: |
| 17 | +req.redist: |
| 18 | +req.target-min-winverclnt: Windows 11, version 24H2 (WDDM 3.2) |
| 19 | +req.target-min-winversvr: |
| 20 | +req.target-type: |
| 21 | +req.typenames: D3D12DDI_GENERIC_PROGRAM_DESC_0108 |
| 22 | +typedef_isUnnamed: false |
| 23 | +req.umdf-ver: |
| 24 | +req.unicode-ansi: |
| 25 | +topic_type: |
| 26 | + - apiref |
| 27 | +api_type: |
| 28 | + - HeaderDef |
| 29 | +api_location: |
| 30 | + - d3d12umddi.h |
| 31 | +api_name: |
| 32 | + - D3D12DDI_GENERIC_PROGRAM_DESC_0108 |
| 33 | +f1_keywords: |
| 34 | + - D3D12DDI_GENERIC_PROGRAM_DESC_0108 |
| 35 | + - d3d12umddi/D3D12DDI_GENERIC_PROGRAM_DESC_0108 |
| 36 | +dev_langs: |
| 37 | + - c++ |
| 38 | +helpviewer_keywords: |
| 39 | + - D3D12DDI_GENERIC_PROGRAM_DESC_0108 |
| 40 | +--- |
| 41 | + |
| 42 | +## -description |
| 43 | + |
| 44 | +The **D3D12DDI_GENERIC_PROGRAM_DESC_0108** structure describes a generic program state subobject that contains shader exports and associated configuration subobjects within a state object. This structure defines the state subobject of type [**D3D12DDI_STATE_SUBOBJECT_TYPE_GENERIC_PROGRAM**](ne-d3d12umddi-d3d12ddi_state_subobject_type.md). |
| 45 | + |
| 46 | +## -struct-fields |
| 47 | + |
| 48 | +### -field ProgramName |
| 49 | + |
| 50 | +A wide-character string that specifies the name of the generic program. This name is unique within the given state object and is used to identify the program. |
| 51 | + |
| 52 | +### -field NumExports |
| 53 | + |
| 54 | +The number of exports from the program. This value determines the number of elements in the **pExports** array. Can be 0 if the program doesn't export any shader functions. |
| 55 | + |
| 56 | +### -field pExports |
| 57 | + |
| 58 | +Pointer to an array of wide-character string pointers (LPCWSTR*), where each string specifies the name of an exported shader function from this program. Each export represents a shader function or entry point that can be referenced by other parts of the state object. Can be NULL if **NumExports** is 0. |
| 59 | + |
| 60 | +### -field NumSubobjects |
| 61 | + |
| 62 | +The number of subobjects associated with this generic program. This value determines the number of elements in the **pSubobjects** array. Can be 0 if the program doesn't have any associated subobjects. |
| 63 | + |
| 64 | +### -field pSubobjects |
| 65 | + |
| 66 | +Pointer to an array of pointers to [**D3D12DDI_STATE_SUBOBJECT_0054**](ns-d3d12umddi-d3d12ddi_state_subobject_0054.md) structures. These subobjects provide additional configuration for the generic program, such as root signatures, local root signatures, or other state that applies to the program's exports. Can be NULL if **NumSubobjects** is 0. |
| 67 | + |
| 68 | +## -remarks |
| 69 | + |
| 70 | +A generic program is a collection of shader code with its exports and associated configuration subobjects within a state object. The runtime validates the generic program before passing this structure to the driver. |
| 71 | + |
| 72 | +For more information, see [Generic programs](/windows-hardware/drivers/display/generic-programs). |
| 73 | + |
| 74 | +## -see-also |
| 75 | + |
| 76 | +[**D3D12DDI_EXPORT_DESC_0054**](ns-d3d12umddi-d3d12ddi_export_desc_0054.md) |
| 77 | + |
| 78 | +[**D3D12DDI_STATE_SUBOBJECT_0054**](ns-d3d12umddi-d3d12ddi_state_subobject_0054.md) |
| 79 | + |
| 80 | +[**D3D12DDI_STATE_SUBOBJECT_TYPE**](ne-d3d12umddi-d3d12ddi_state_subobject_type.md) |
| 81 | + |
| 82 | +[**PFND3D12DDI_ADD_TO_STATE_OBJECT_0072**](nc-d3d12umddi-pfnd3d12ddi_add_to_state_object_0072.md) |
| 83 | + |
| 84 | +[**PFND3D12DDI_CREATE_STATE_OBJECT_0054**](nc-d3d12umddi-pfnd3d12ddi_create_state_object_0054.md) |
0 commit comments