mesa: add support to query GL_OFFSET for GL_TRANSFORM_FEEDBACK_VARYING
Reviewed-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
@@ -742,6 +742,7 @@ tfeedback_decl::store(struct gl_context *ctx, struct gl_shader_program *prog,
|
||||
} else {
|
||||
xfb_offset = info->Buffers[buffer].Stride;
|
||||
}
|
||||
info->Varyings[info->NumVarying].Offset = xfb_offset * 4;
|
||||
|
||||
unsigned location = this->location;
|
||||
unsigned location_frac = this->location_frac;
|
||||
|
@@ -1619,6 +1619,7 @@ struct gl_transform_feedback_varying_info
|
||||
char *Name;
|
||||
GLenum Type;
|
||||
GLint Size;
|
||||
GLint Offset;
|
||||
};
|
||||
|
||||
|
||||
|
@@ -1186,9 +1186,17 @@ _mesa_program_resource_prop(struct gl_shader_program *shProg,
|
||||
goto invalid_operation;
|
||||
}
|
||||
case GL_OFFSET:
|
||||
VALIDATE_TYPE_2(GL_UNIFORM, GL_BUFFER_VARIABLE);
|
||||
*val = RESOURCE_UNI(res)->offset;
|
||||
return 1;
|
||||
switch (res->Type) {
|
||||
case GL_UNIFORM:
|
||||
case GL_BUFFER_VARIABLE:
|
||||
*val = RESOURCE_UNI(res)->offset;
|
||||
return 1;
|
||||
case GL_TRANSFORM_FEEDBACK_VARYING:
|
||||
*val = RESOURCE_XFV(res)->Offset;
|
||||
return 1;
|
||||
default:
|
||||
goto invalid_operation;
|
||||
}
|
||||
case GL_BLOCK_INDEX:
|
||||
VALIDATE_TYPE_2(GL_UNIFORM, GL_BUFFER_VARIABLE);
|
||||
*val = RESOURCE_UNI(res)->block_index;
|
||||
|
Reference in New Issue
Block a user