Zynq UltraScale+ Devices Register Reference > Module Summary > GPU Module > PP1_FS_STACK_SIZE_AND_INIT_VAL (GPU) Register

PP1_FS_STACK_SIZE_AND_INIT_VAL (GPU) Register

PP1_FS_STACK_SIZE_AND_INIT_VAL (GPU) Register Description

Register NamePP1_FS_STACK_SIZE_AND_INIT_VAL
Relative Address0x000000A034
Absolute Address 0x00FD4BA034 (GPU)
Width32
TyperwNormal read/write
Reset Value0x00000000
DescriptionFS Stack Size and Initial Value Register

PP1_FS_STACK_SIZE_AND_INIT_VAL (GPU) Register Bit-Field Summary

Field NameBitsTypeReset ValueDescription
FS_STACK_INIT_VAL31:16rwNormal read/write0x0The 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_SIZE15:0rwNormal read/write0x0The 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.