mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 02:38:04 +02:00
i965/vec4: Make a function for setting up vec4 program key clip info.
This functionality will need to be reused by geometry shaders. Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Matt Turner <mattst88@gmail.com>
This commit is contained in:
parent
5b5d10bcd3
commit
06918f84c2
2 changed files with 24 additions and 6 deletions
|
|
@ -125,6 +125,7 @@ extern "C" {
|
|||
struct brw_context;
|
||||
struct brw_instruction;
|
||||
struct brw_vs_prog_key;
|
||||
struct brw_vec4_prog_key;
|
||||
struct brw_wm_prog_key;
|
||||
struct brw_wm_prog_data;
|
||||
|
||||
|
|
@ -1586,6 +1587,11 @@ gen7_emit_depth_stencil_hiz(struct brw_context *brw,
|
|||
|
||||
extern const GLuint prim_to_hw_prim[GL_POLYGON+1];
|
||||
|
||||
void
|
||||
brw_setup_vec4_key_clip_info(struct brw_context *brw,
|
||||
struct brw_vec4_prog_key *key,
|
||||
bool program_uses_clip_distance);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -381,6 +381,23 @@ brw_vs_debug_recompile(struct brw_context *brw,
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
brw_setup_vec4_key_clip_info(struct brw_context *brw,
|
||||
struct brw_vec4_prog_key *key,
|
||||
bool program_uses_clip_distance)
|
||||
{
|
||||
struct gl_context *ctx = &brw->ctx;
|
||||
|
||||
key->userclip_active = (ctx->Transform.ClipPlanesEnabled != 0);
|
||||
key->uses_clip_distance = program_uses_clip_distance;
|
||||
if (key->userclip_active && !key->uses_clip_distance) {
|
||||
key->nr_userclip_plane_consts
|
||||
= _mesa_logbase2(ctx->Transform.ClipPlanesEnabled) + 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void brw_upload_vs_prog(struct brw_context *brw)
|
||||
{
|
||||
struct gl_context *ctx = &brw->ctx;
|
||||
|
|
@ -397,12 +414,7 @@ static void brw_upload_vs_prog(struct brw_context *brw)
|
|||
* the inputs it asks for, whether they are varying or not.
|
||||
*/
|
||||
key.base.program_string_id = vp->id;
|
||||
key.base.userclip_active = (ctx->Transform.ClipPlanesEnabled != 0);
|
||||
key.base.uses_clip_distance = vp->program.UsesClipDistance;
|
||||
if (key.base.userclip_active && !key.base.uses_clip_distance) {
|
||||
key.base.nr_userclip_plane_consts
|
||||
= _mesa_logbase2(ctx->Transform.ClipPlanesEnabled) + 1;
|
||||
}
|
||||
brw_setup_vec4_key_clip_info(brw, &key.base, vp->program.UsesClipDistance);
|
||||
|
||||
/* _NEW_POLYGON */
|
||||
if (brw->gen < 6) {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue