iris: basic push constant alloc
authorKenneth Graunke <kenneth@whitecape.org>
Fri, 12 Jan 2018 07:01:28 +0000 (23:01 -0800)
committerKenneth Graunke <kenneth@whitecape.org>
Thu, 21 Feb 2019 18:26:04 +0000 (10:26 -0800)
src/gallium/drivers/iris/iris_state.c

index 9291bf449a2c5a97a7d824f425a5aa4b5cfdf827..3561d7e33133f1a8785d99fe6cf01c25300744fe 100644 (file)
@@ -270,6 +270,15 @@ iris_upload_initial_gpu_state(struct iris_context *ice,
    iris_emit_cmd(batch, GENX(3DSTATE_WM_HZ_OP), foo);
    /* XXX: may need to set an offset for origin-UL framebuffers */
    iris_emit_cmd(batch, GENX(3DSTATE_POLY_STIPPLE_OFFSET), foo);
+
+   /* Just assign a static partitioning. */
+   for (int i = 0; i <= MESA_SHADER_FRAGMENT; i++) {
+      iris_emit_cmd(batch, GENX(3DSTATE_PUSH_CONSTANT_ALLOC_VS), alloc) {
+         alloc._3DCommandSubOpcode = 18 + i;
+         alloc.ConstantBufferOffset = 6 * i;
+         alloc.ConstantBufferSize = i == MESA_SHADER_FRAGMENT ? 8 : 6;
+      }
+   }
 }
 
 static void
@@ -1479,7 +1488,6 @@ iris_upload_render_state(struct iris_context *ice,
 #if 0
    l3 configuration
 
-   3DSTATE_PUSH_CONSTANT_ALLOC_*
    3DSTATE_URB_*
      -> TODO