[Mesa-dev] [PATCH v2 02/78] i965/nir/vec4: Select between new nir_vec4 or current vec4_visitor code-paths
Jason Ekstrand
jason at jlekstrand.net
Sun Jul 26 13:51:11 PDT 2015
On Jul 26, 2015 1:40 PM, "Eduardo Lima Mitev" <elima at igalia.com> wrote:
>
> On 07/23/2015 11:25 PM, Jason Ekstrand wrote:
> > On Thu, Jul 23, 2015 at 3:16 AM, Eduardo Lima Mitev <elima at igalia.com>
wrote:
> >> The NIR->vec4 pass will be activated if both the following conditions
are met:
> >>
> >> * INTEL_USE_NIR environment variable is defined and is positive (1 or
true)
> >> * The stage is vertex shader (support for geometry shaders and
> >> ARB_vertex_program will be added later).
> >> ---
> >> src/mesa/drivers/dri/i965/brw_shader.cpp | 14 ++++++++------
> >> src/mesa/drivers/dri/i965/brw_vec4.cpp | 18 ++++++++++++++----
> >> 2 files changed, 22 insertions(+), 10 deletions(-)
> >>
> >> diff --git a/src/mesa/drivers/dri/i965/brw_shader.cpp
b/src/mesa/drivers/dri/i965/brw_shader.cpp
> >> index 9d60543..cb04d8a 100644
> >> --- a/src/mesa/drivers/dri/i965/brw_shader.cpp
> >> +++ b/src/mesa/drivers/dri/i965/brw_shader.cpp
> >> @@ -122,12 +122,14 @@ brw_compiler_create(void *mem_ctx, const struct
brw_device_info *devinfo)
> >> compiler->glsl_compiler_options[MESA_SHADER_VERTEX].OptimizeForAOS
= true;
> >>
compiler->glsl_compiler_options[MESA_SHADER_GEOMETRY].OptimizeForAOS =
true;
> >>
> >> - if (compiler->scalar_vs) {
> >> - /* If we're using the scalar backend for vertex shaders, we
need to
> >> - * configure these accordingly.
> >> - */
> >> -
compiler->glsl_compiler_options[MESA_SHADER_VERTEX].EmitNoIndirectOutput =
true;
> >> -
compiler->glsl_compiler_options[MESA_SHADER_VERTEX].EmitNoIndirectTemp =
true;
> >> + if (compiler->scalar_vs || brw_env_var_as_boolean("INTEL_USE_NIR",
false)) {
> >> + if (compiler->scalar_vs) {
> >> + /* If we're using the scalar backend for vertex shaders, we
need to
> >> + * configure these accordingly.
> >> + */
> >> +
compiler->glsl_compiler_options[MESA_SHADER_VERTEX].EmitNoIndirectOutput =
true;
> >> +
compiler->glsl_compiler_options[MESA_SHADER_VERTEX].EmitNoIndirectTemp =
true;
> >> + }
> >>
compiler->glsl_compiler_options[MESA_SHADER_VERTEX].OptimizeForAOS = false;
> >>
> >> compiler->glsl_compiler_options[MESA_SHADER_VERTEX].NirOptions
= nir_options;
> >> diff --git a/src/mesa/drivers/dri/i965/brw_vec4.cpp
b/src/mesa/drivers/dri/i965/brw_vec4.cpp
> >> index 53270fb..ce04f1b 100644
> >> --- a/src/mesa/drivers/dri/i965/brw_vec4.cpp
> >> +++ b/src/mesa/drivers/dri/i965/brw_vec4.cpp
> >> @@ -1709,6 +1709,9 @@ vec4_visitor::emit_shader_time_write(int
shader_time_subindex, src_reg value)
> >> bool
> >> vec4_visitor::run(gl_clip_plane *clip_planes)
> >> {
> >> + bool use_vec4_nir =
> >> + compiler->glsl_compiler_options[MESA_SHADER_VERTEX].NirOptions
!= NULL;
> >> +
> >> sanity_param_count = prog->Parameters->NumParameters;
> >>
> >> if (shader_time_index >= 0)
> >> @@ -1718,11 +1721,18 @@ vec4_visitor::run(gl_clip_plane *clip_planes)
> >>
> >> emit_prolog();
> >>
> >> - /* Generate VS IR for main(). (the visitor only descends into
> >> - * functions called "main").
> >> - */
> >> if (shader) {
> >> - visit_instructions(shader->base.ir);
> >> + if (use_vec4_nir) {
> >
> > We could put the compiler_options[].NirOptions check here. I don't
> > care too much though.
> >
>
> Yes, the extra variable is not necessary at this point, but later on in
> the series we have the patch
> http://lists.freedesktop.org/archives/mesa-dev/2015-July/089653.html
> which uses the bool variable again in the same method. Hence, I think we
> can leave it there if you don't feel strongly about it. Otherwise, we
> can introduce the variable in the later commit where the condition is
> needed again.
That's fine. Go ahead and leave it.
> >> + assert(prog->nir != NULL);
> >> + emit_nir_code();
> >> + if (failed)
> >> + return false;
> >> + } else {
> >> + /* Generate VS IR for main(). (the visitor only descends
into
> >> + * functions called "main").
> >> + */
> >> + visit_instructions(shader->base.ir);
> >> + }
> >> } else {
> >> emit_program_code();
> >> }
> >> --
> >> 2.1.4
> >>
> >> _______________________________________________
> >> mesa-dev mailing list
> >> mesa-dev at lists.freedesktop.org
> >> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20150726/a6951766/attachment.html>
More information about the mesa-dev
mailing list