Zynq UltraScale+ Devices Register Reference > Module Summary > GPU Module > PP1_FS_STACK_SIZE_AND_INIT_VAL (GPU) Register
Register Name | PP1_FS_STACK_SIZE_AND_INIT_VAL |
---|---|
Relative Address | 0x000000A034 |
Absolute Address | 0x00FD4BA034 (GPU) |
Width | 32 |
Type | rwNormal read/write |
Reset Value | 0x00000000 |
Description | FS Stack Size and Initial Value Register |
Field Name | Bits | Type | Reset Value | Description |
---|---|---|---|---|
FS_STACK_INIT_VAL | 31:16 | rwNormal read/write | 0x0 | The initial value that the stack pointer is set to at the start of executing a fragment shader. This is achieved by setting this field to a non-zero value to enable the main function of a fragment shader to have a stack frame. This register must be set to the size of the largest stack frame of the active fragment shader main function requirements. If the stack pointer is decremented to a value less than FS_STACK_INIT_VAL as a result of a function return, then the fragment shader terminates, and is considered to have executed successfully. This functionality enables the main-function to be recursive, as any other function. |
FS_STACK_SIZE | 15:0 | rwNormal read/write | 0x0 | The fragment shader stack size in number of 8-byte elements that the fragment shader stack is permitted to contain. The amount of memory that must be allocated for the fragment shader stack is 1KB x FS_STACK_SIZE. Note: The fragment shader requires 128 stacks to keep stack data for all active fragments in the pipeline. An increment of 1 unit in FS_STACK_SIZE means 8-byte elements for each stack for each fragment. This gives 8-byte x 128 stacks/fragment = 1024 bytes. |