Skip to content
  • 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: default avatarJordan Justen <jordan.l.justen@intel.com>
    Reviewed-by: default avatarKristian H. Kristensen <hoegsberg@google.com>
    0b44644c