1. 06 Jun, 2017 1 commit
  2. 14 Mar, 2017 1 commit
  3. 13 Mar, 2017 1 commit
  4. 15 Feb, 2017 1 commit
  5. 24 Nov, 2015 2 commits
  6. 08 Oct, 2015 1 commit
  7. 10 Apr, 2015 1 commit
  8. 28 Mar, 2015 1 commit
    • Kenneth Graunke's avatar
      nir: Implement a Mesa IR -> NIR translator. · faf6106c
      Kenneth Graunke authored
      Shamelessly ripped off from Eric Anholt's tgsi_to_nir pass.
      
      This is not built on SCons, like the rest of NIR.
      
      v2:
      - Delete redundant c->s, c->impl, and c->cf_node_list pointers (Ken)
      - Use nir_builder directly instead of ptn_compile in more places (Ken)
      - Drop 'struct' keyword in front of nir_builder (ken)
      - Add a file level Doxygen comment (Ken)
      - Use scalar constants instead of splatting (Eric)
      - Use nir_builder helpers for constants, moves, and swizzles (Connor)
      
      v3: Minor indentation improvements.
      Signed-off-by: Kenneth Graunke's avatarKenneth Graunke <kenneth@whitecape.org>
      Reviewed-by: Eric Anholt's avatarEric Anholt <eric@anholt.net>
      faf6106c
  9. 09 Jul, 2013 2 commits
  10. 23 May, 2012 1 commit
  11. 15 May, 2012 1 commit
    • Paul Berry's avatar
      i965: Parameterize HiZ code to prepare for adding blitting. · 2c5510b7
      Paul Berry authored
      This patch groups together the parameters used by the HiZ functions
      into a new data structure, brw_hiz_resolve_params, rather than passing
      each parameter individually between the HiZ functions.  This data
      structure is a subclass of brw_blorp_params, which represents the
      parameters of a general-purpose blit or resolve operation.  A future
      patch will add another subclass for blits.
      
      In addition, this patch generalizes the (width, height) parameters to
      a full rect (x0, y0, x1, y1), since blitting operations will need to
      be able to operate on arbitrary rectangles.  Also, it renames several
      of the HiZ functions to reflect the expanded role they will serve.
      
      v2: Rename brw_hiz_resolve_params to brw_hiz_op_params.  Move
      gen{6,7}_blorp_exec() functions back into gen{6,7}_blorp.h.
      Reviewed-by: default avatarChad Versace <chad.versace@linux.intel.com>
      2c5510b7
  12. 10 May, 2012 2 commits
  13. 07 Feb, 2012 1 commit
    • Chad Versace's avatar
      i965: Rewrite the HiZ op · 7b36c68b
      Chad Versace authored
      The HiZ op was implemented as a meta-op. This patch reimplements it by
      emitting a special HiZ batch. This fixes several known bugs, and likely
      a lot of undiscovered ones too.
      
      ==== Why the HiZ meta-op needed to die ====
      
      The HiZ op was implemented as a meta-op, which caused lots of trouble. All
      other meta-ops occur as a result of some GL call (for example, glClear and
      glGenerateMipmap), but the HiZ meta-op was special. It was called in
      places that Mesa (in particular, the vbo and swrast modules) did not
      expect---and were not prepared for---state changes to occur (for example:
      glDraw; glCallList; within glBegin/End blocks; and within
      swrast_prepare_render as a result of intel_miptree_map).
      
      In an attempt to work around these unexpected state changes, I added two
      hooks in i965:
        - A hook for glDraw, located in brw_predraw_resolve_buffers (which is
          called in the glDraw path). This hook detected if a predraw resolve
          meta-op had occurred, and would hackishly repropagate some GL state
          if necessary. This ensured that the meta-op state changes would not
          intefere with the vbo module's subsequent execution of glDraw.
        - A hook for glBegin, implemented by brwPrepareExecBegin. This hook
          resolved all buffers before entering
          a glBegin/End block, thus preventing an infinitely recurring call to
          vbo_exec_FlushVertices. The vbo module calls vbo_exec_FlushVertices to
          flush its vertex queue in response to GL state changes.
      
      Unfortunately, these hooks were not sufficient. The meta-op state changes
      still interacted badly with glPopAttrib (as discovered in bug 44927) and
      with swrast rendering (as discovered by debugging gen6's swrast fallback
      for glBitmap). I expect there are more undiscovered bugs. Rather than play
      whack-a-mole in a minefield, the sane approach is to replace the HiZ
      meta-op with something safer.
      
      ==== How it was killed ====
      
      This patch consists of several logical components:
        1. Rewrite the HiZ op by replacing function gen6_resolve_slice with
           gen6_hiz_exec and gen7_hiz_exec. The new functions do not call
           a meta-op, but instead manually construct and emit a batch to "draw"
           the HiZ op's rectangle primitive. The new functions alter no GL
           state.
        2. Add fields to brw_context::hiz for the new HiZ op.
        3. Emit a workaround flush when toggling 3DSTATE_VS.VsFunctionEnable.
        4. Kill all dead HiZ code:
           - the function gen6_resolve_slice
           - the dirty flag BRW_NEW_HIZ
           - the dead fields in brw_context::hiz
           - the state packet manipulation triggered by the now removed
             brw_context::hiz::op
           - the meta-op workaround in brw_predraw_resolve_buffers (discussed
             above)
           - the meta-op workaround brwPrepareExecBegin (discussed above)
      
      Note: This is a candidate for the 8.0 branch.
      Reviewed-by: Eric Anholt's avatarEric Anholt <eric@anholt.net>
      Reviewed-by: Kenneth Graunke's avatarKenneth Graunke <kenneth@whitecape.org>
      Acked-by: Paul Berry's avatarPaul Berry <stereotype441@gmail.com>
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=43327
      Reported-by: xunx.fang@intel.com
      Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=44927
      Reported-by: chao.a.chen@intel.com
      Signed-off-by: default avatarChad Versace <chad.versace@linux.intel.com>
      7b36c68b
  14. 22 Nov, 2011 1 commit
  15. 18 Oct, 2011 1 commit
  16. 22 Jul, 2011 1 commit
    • Paul Berry's avatar
      glsl: Create a standalone executable for testing optimization passes. · f1f76e15
      Paul Berry authored
      This patch adds a new build artifact, glsl_test, which can be used for
      testing optimization passes in isolation.
      
      I'm hoping that we will be able to add other useful standalone tests
      to this executable in the future.  Accordingly, it is built in a
      modular fashion: the main() function uses its first argument to
      determine which test function to invoke, removes that argument from
      argv[], and then calls that function to interpret the rest of the
      command line arguments and perform the test.  Currently the only test
      function is "optpass", which tests optimization passes.
      f1f76e15
  17. 24 Jun, 2010 1 commit
  18. 05 May, 2010 1 commit
  19. 23 Apr, 2010 1 commit
  20. 21 Apr, 2010 1 commit
  21. 08 Apr, 2010 1 commit
  22. 07 Apr, 2010 2 commits
  23. 06 Apr, 2010 1 commit
  24. 29 Mar, 2010 1 commit
    • Ian Romanick's avatar
      Implement ir_if (for if-statments) and conversion from AST · 3c6fea30
      Ian Romanick authored
      The following tests now pass:
      
          glslparsertest/shaders/if1.frag
          glslparsertest/shaders/if2.frag
      
      The following tests that used to pass now fail.  It appears that most
      of these fail because ast_nequal and ast_equal are not converted to HIR.
      
          shaders/glsl-unused-varying.frag
          shaders/glsl-fs-sqrt-branch.frag
      3c6fea30
  25. 26 Mar, 2010 2 commits
  26. 19 Mar, 2010 1 commit
  27. 11 Mar, 2010 1 commit
  28. 10 Mar, 2010 2 commits
  29. 23 Feb, 2010 1 commit
  30. 22 Feb, 2010 1 commit