i965/eu: Take into account the target cache argument in brw_set_dp_read_message.
[mesa.git] / src / mesa / drivers / dri / i965 / brw_util.c
index 1bb4f4d879cbd5fd5db3c29de88b5fb86cba02fe..934b6b8d6273313418717c53fef616033b736e4e 100644 (file)
   */
 
 
-#include <assert.h>
-
-#include "main/mtypes.h"
-#include "program/prog_parameter.h"
 #include "brw_util.h"
 #include "brw_defines.h"
 
@@ -51,8 +47,7 @@ GLuint brw_translate_blend_equation( GLenum mode )
    case GL_FUNC_REVERSE_SUBTRACT:
       return BRW_BLENDFUNCTION_REVERSE_SUBTRACT;
    default:
-      assert(0);
-      return BRW_BLENDFUNCTION_ADD;
+      unreachable("not reached");
    }
 }
 
@@ -100,7 +95,34 @@ GLuint brw_translate_blend_factor( GLenum factor )
       return BRW_BLENDFACTOR_INV_SRC1_ALPHA;
 
    default:
-      assert(0);
-      return BRW_BLENDFACTOR_ZERO;
+      unreachable("not reached");
+   }
+}
+
+static const GLuint prim_to_hw_prim[GL_TRIANGLE_STRIP_ADJACENCY+1] = {
+   [GL_POINTS] =_3DPRIM_POINTLIST,
+   [GL_LINES] = _3DPRIM_LINELIST,
+   [GL_LINE_LOOP] = _3DPRIM_LINELOOP,
+   [GL_LINE_STRIP] = _3DPRIM_LINESTRIP,
+   [GL_TRIANGLES] = _3DPRIM_TRILIST,
+   [GL_TRIANGLE_STRIP] = _3DPRIM_TRISTRIP,
+   [GL_TRIANGLE_FAN] = _3DPRIM_TRIFAN,
+   [GL_QUADS] = _3DPRIM_QUADLIST,
+   [GL_QUAD_STRIP] = _3DPRIM_QUADSTRIP,
+   [GL_POLYGON] = _3DPRIM_POLYGON,
+   [GL_LINES_ADJACENCY] = _3DPRIM_LINELIST_ADJ,
+   [GL_LINE_STRIP_ADJACENCY] = _3DPRIM_LINESTRIP_ADJ,
+   [GL_TRIANGLES_ADJACENCY] = _3DPRIM_TRILIST_ADJ,
+   [GL_TRIANGLE_STRIP_ADJACENCY] = _3DPRIM_TRISTRIP_ADJ,
+};
+
+uint32_t
+get_hw_prim_for_gl_prim(int mode)
+{
+   if (mode >= BRW_PRIM_OFFSET)
+      return mode - BRW_PRIM_OFFSET;
+   else {
+      assert(mode < ARRAY_SIZE(prim_to_hw_prim));
+      return prim_to_hw_prim[mode];
    }
 }