glsl: Add support for representing framebuffer fetch in the GLSL IR.
The GLSL IR representation of framebuffer fetch amounts to a single bit in the ir_variable object applicable to fragment shader outputs. The flag indicates that the variable will be implicitly initialized to the previous contents of the render buffer at the same fragment coordinates and sample index. Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
@@ -1686,6 +1686,7 @@ ir_variable::ir_variable(const struct glsl_type *type, const char *name,
|
||||
this->data.image_volatile = false;
|
||||
this->data.image_restrict = false;
|
||||
this->data.from_ssbo_unsized_array = false;
|
||||
this->data.fb_fetch_output = false;
|
||||
|
||||
if (type != NULL) {
|
||||
if (type->base_type == GLSL_TYPE_SAMPLER)
|
||||
|
@@ -831,6 +831,14 @@ public:
|
||||
unsigned from_ssbo_unsized_array:1; /**< unsized array buffer variable. */
|
||||
|
||||
unsigned implicit_sized_array:1;
|
||||
|
||||
/**
|
||||
* Whether this is a fragment shader output implicitly initialized with
|
||||
* the previous contents of the specified render target at the
|
||||
* framebuffer location corresponding to this shader invocation.
|
||||
*/
|
||||
unsigned fb_fetch_output:1;
|
||||
|
||||
/**
|
||||
* Emit a warning if this variable is accessed.
|
||||
*/
|
||||
|
Reference in New Issue
Block a user