mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 22:08:26 +02:00
i965: Move select_clip_planes to brw_vs.c
Reviewed-by: Matt Turner <mattst88@gmail.com>
This commit is contained in:
parent
818bfdfa15
commit
a2195e561a
2 changed files with 26 additions and 25 deletions
|
|
@ -1137,31 +1137,6 @@ backend_shader::calculate_cfg()
|
|||
cfg = new(mem_ctx) cfg_t(&this->instructions);
|
||||
}
|
||||
|
||||
/**
|
||||
* Decide which set of clip planes should be used when clipping via
|
||||
* gl_Position or gl_ClipVertex.
|
||||
*/
|
||||
gl_clip_plane *brw_select_clip_planes(struct gl_context *ctx)
|
||||
{
|
||||
if (ctx->_Shader->CurrentProgram[MESA_SHADER_VERTEX]) {
|
||||
/* There is currently a GLSL vertex shader, so clip according to GLSL
|
||||
* rules, which means compare gl_ClipVertex (or gl_Position, if
|
||||
* gl_ClipVertex wasn't assigned) against the eye-coordinate clip planes
|
||||
* that were stored in EyeUserPlane at the time the clip planes were
|
||||
* specified.
|
||||
*/
|
||||
return ctx->Transform.EyeUserPlane;
|
||||
} else {
|
||||
/* Either we are using fixed function or an ARB vertex program. In
|
||||
* either case the clip planes are going to be compared against
|
||||
* gl_Position (which is in clip coordinates) so we have to clip using
|
||||
* _ClipUserPlane, which was transformed into clip coordinates by Mesa
|
||||
* core.
|
||||
*/
|
||||
return ctx->Transform._ClipUserPlane;
|
||||
}
|
||||
}
|
||||
|
||||
extern "C" const unsigned *
|
||||
brw_compile_tes(const struct brw_compiler *compiler,
|
||||
void *log_data,
|
||||
|
|
|
|||
|
|
@ -43,6 +43,32 @@
|
|||
|
||||
#include "util/ralloc.h"
|
||||
|
||||
/**
|
||||
* Decide which set of clip planes should be used when clipping via
|
||||
* gl_Position or gl_ClipVertex.
|
||||
*/
|
||||
gl_clip_plane *
|
||||
brw_select_clip_planes(struct gl_context *ctx)
|
||||
{
|
||||
if (ctx->_Shader->CurrentProgram[MESA_SHADER_VERTEX]) {
|
||||
/* There is currently a GLSL vertex shader, so clip according to GLSL
|
||||
* rules, which means compare gl_ClipVertex (or gl_Position, if
|
||||
* gl_ClipVertex wasn't assigned) against the eye-coordinate clip planes
|
||||
* that were stored in EyeUserPlane at the time the clip planes were
|
||||
* specified.
|
||||
*/
|
||||
return ctx->Transform.EyeUserPlane;
|
||||
} else {
|
||||
/* Either we are using fixed function or an ARB vertex program. In
|
||||
* either case the clip planes are going to be compared against
|
||||
* gl_Position (which is in clip coordinates) so we have to clip using
|
||||
* _ClipUserPlane, which was transformed into clip coordinates by Mesa
|
||||
* core.
|
||||
*/
|
||||
return ctx->Transform._ClipUserPlane;
|
||||
}
|
||||
}
|
||||
|
||||
GLbitfield64
|
||||
brw_vs_outputs_written(struct brw_context *brw, struct brw_vs_prog_key *key,
|
||||
GLbitfield64 user_varyings)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue