1. 14 Dec, 2018 2 commits
    • Kenneth Graunke's avatar
      genxml: Consistently use a numeric "MOCS" field · 0b44644c
      Kenneth Graunke authored
      
      
      When we first started using genxml, we decided to represent MOCS as an
      actual structure, and pack values.  However, in many places, it was more
      convenient to use a numeric value rather than treating it as a struct,
      so we added secondary setters in a bunch of places as well.
      
      We were not entirely consistent, either.  Some places only had one.
      Gen6 had both kinds of setters for STATE_BASE_ADDRESS, but newer gens
      only had the struct-based setters.  The names were sometimes "Constant
      Buffer Object Control State" instead of "Memory", making it harder to
      find.  Many had prefixes like "Vertex Buffer MOCS"...in a vertex buffer
      packet...which is a bit redundant.
      
      On modern hardware, MOCS is simply an index into a table, but we were
      still carrying around the structure with an "Index to MOCS Table" field,
      in addition to the direct numeric setters.  This is clunky - we really
      just want a number on new hardware.
      
      This patch eliminates the struct-based setters, and makes the numeric
      setters be consistently called "MOCS".  We leave the struct definition
      around on Gen7-8 for reference purposes, but it is unused.
      
      v2: Drop bonus "Depth Buffer MOCS" fields on Gen7.5 and Gen9
      Reviewed-by: Jordan Justen's avatarJordan Justen <jordan.l.justen@intel.com>
      Reviewed-by: Kristian H. Kristensen's avatarKristian H. Kristensen <hoegsberg@google.com>
      0b44644c
    • Timothy Arceri's avatar
      nir: fix opt_if_loop_last_continue() · a2ec7888
      Timothy Arceri authored
      The pass did not correctly handle loops ending in:
      
      	if ssa_7 {
      		block block_8:
      		/* preds: block_7 */
      		continue
      		/* succs: block_1 */
      	} else {
      		block block_9:
      		/* preds: block_7 */
      		break
      		/* succs: block_11 */
      	}
      
      The break will get eliminated by another opt but if this pass gets
      called first (as it does on RADV) we ended up inserting
      instructions after the break.
      
      Fixes: 5921a19d
      
       ("nir: add if opt opt_if_loop_last_continue()")
      Reviewed-by: default avatarDave Airlie <airlied@redhat.com>
      a2ec7888
  2. 13 Dec, 2018 38 commits