OSDN Git Service

vc4: Add load/store to the validator
authorEric Anholt <eric@anholt.net>
Fri, 18 Jul 2014 21:18:23 +0000 (14:18 -0700)
committerEric Anholt <eric@anholt.net>
Mon, 11 Aug 2014 21:40:45 +0000 (14:40 -0700)
src/gallium/drivers/vc4/vc4_simulator_validate.c

index 2839136..14701b1 100644 (file)
@@ -63,21 +63,17 @@ validate_branch_to_sublist(VALIDATE_ARGS)
 }
 
 static int
-validate_store_tile_buffer_general(VALIDATE_ARGS)
+validate_loadstore_tile_buffer_general(VALIDATE_ARGS)
 {
-#if 0
-       struct drm_gem_cma_object *fbo;
+       uint32_t packet_b0 = *(uint8_t *)(untrusted + 0);
+       struct drm_gem_cma_object *fbo = exec->bo[exec->bo_index[0]];
 
-       /* XXX: Validate address offset */
+       if ((packet_b0 & 0xf) == VC4_LOADSTORE_TILE_BUFFER_NONE)
+               return 0;
 
-       fbo = exec->bo[exec->bo_index[0]];
-
-       /* XXX */
-       /*
+       /* XXX: Validate address offset */
        *(uint32_t *)(validated + 2) =
                *(uint32_t *)(untrusted + 2) + fbo->paddr;
-               */
-#endif
 
        return 0;
 }
@@ -228,7 +224,9 @@ static const struct cmd_info {
        [25] = { 0, 1, 1, "store MS resolved tile color buffer and EOF", NULL },
 
        [28] = { 0, 1, 7, "Store Tile Buffer General",
-                validate_store_tile_buffer_general },
+                validate_loadstore_tile_buffer_general },
+       [29] = { 0, 1, 7, "Load Tile Buffer General",
+                validate_loadstore_tile_buffer_general },
 
        [32] = { 1, 1, 14, "Indexed Primitive List",
                 validate_indexed_prim_list },