v3d: Convert a bunch of our "minus one" fields over to the new XML attr.
authorEric Anholt <eric@anholt.net>
Tue, 26 Jun 2018 22:58:21 +0000 (15:58 -0700)
committerEric Anholt <eric@anholt.net>
Wed, 27 Jun 2018 16:13:48 +0000 (09:13 -0700)
This fixes up their formatting for CLIF files and makes the code more
legible.

src/broadcom/cle/v3d_packet_v33.xml
src/broadcom/cle/v3d_packet_v41.xml
src/broadcom/cle/v3d_packet_v42.xml
src/gallium/drivers/v3d/v3d_program.c
src/gallium/drivers/v3d/v3dx_draw.c
src/gallium/drivers/v3d/v3dx_rcl.c

index 22d43cc8025cce45bb87a4a21d416299c6f2f3c8..1ece1c9555814c9504c8e30eb8eb0fd6bec7135a 100644 (file)
 
   <struct name="Transform Feedback Output Data Spec">
     <field name="First Shaded Vertex Value to output" size="8" start="0" type="uint"/>
-    <field name="Number of consecutive Vertex Values to output as 32-bit values minus 1" size="4" start="8" type="uint"/>
+    <field name="Number of consecutive Vertex Values to output as 32-bit values" size="4" start="8" type="uint" minus_one="true"/>
     <field name="Output Buffer to write to" size="2" start="12" type="uint"/>
   </struct>
 
 
     <field name="Image Height (pixels)" size="16" start="24" type="uint"/>
     <field name="Image Width (pixels)" size="16" start="8" type="uint"/>
-    <field name="Number of Render Targets Minus 1" size="4" start="4" type="uint"/>
+    <field name="Number of Render Targets" size="4" start="4" type="uint" minus_one="true"/>
 
     <field name="sub-id" size="4" start="0" type="uint" default="0"/>
   </packet>
     <field name="Total Frame Height in Supertiles" size="8" start="24" type="uint"/>
     <field name="Total Frame Width in Supertiles" size="8" start="16" type="uint"/>
 
-    <field name="Supertile Height in Tiles minus 1" size="8" start="8" type="uint"/>
-    <field name="Supertile Width in Tiles minus 1" size="8" start="0" type="uint"/>
+    <field name="Supertile Height in Tiles" size="8" start="8" type="uint" minus_one="true"/>
+    <field name="Supertile Width in Tiles" size="8" start="0" type="uint" minus_one="true"/>
   </packet>
 
   <packet code="123" name="Multicore Rendering Tile List Set Base" cl="R">
index c516561407907383876f748873b4909e09949604..9f0c54eadc9d03d2000ef3906109ce574b11a781 100644 (file)
 
   <struct name="Transform Feedback Output Data Spec">
     <field name="First Shaded Vertex Value to output" size="8" start="0" type="uint"/>
-    <field name="Number of consecutive Vertex Values to output as 32-bit values minus 1" size="4" start="8" type="uint"/>
+    <field name="Number of consecutive Vertex Values to output as 32-bit values" size="4" start="8" type="uint" minus_one="true"/>
     <field name="Output Buffer to write to" size="2" start="12" type="uint"/>
   </struct>
 
   </packet>
 
   <packet name="Number of Layers" code="119">
-    <field name="Number of Layers Minus 1" size="8" start="0" type="uint"/>
+    <field name="Number of Layers" size="8" start="0" type="uint" minus_one="true"/>
   </packet>
 
   <packet code="120" name="Tile Binning Mode Configuration (Part1)">
 
-    <field name="Height (in pixels minus 1)" size="12" start="48" type="uint"/>
-    <field name="Width (in pixels minus 1)" size="12" start="32" type="uint"/>
+    <field name="Height (in pixels)" size="12" start="48" type="uint" minus_one="true"/>
+    <field name="Width (in pixels)" size="12" start="32" type="uint" minus_one="true"/>
 
     <field name="Double-buffer in non-ms mode" size="1" start="15" type="bool"/>
     <field name="Multisample Mode (4x)" size="1" start="14" type="bool"/>
       <value name="Render target maximum 128bpp" value="2"/>
     </field>
 
-    <field name="Number of Render Targets minus 1" size="4" start="8" type="uint"/>
+    <field name="Number of Render Targets" size="4" start="8" type="uint" minus_one="true"/>
 
     <field name="tile allocation block size" size="2" start="4" type="uint">
       <value name="tile allocation block size 64b" value="0"/>
 
     <field name="Image Height (pixels)" size="16" start="24" type="uint"/>
     <field name="Image Width (pixels)" size="16" start="8" type="uint"/>
-    <field name="Number of Render Targets Minus 1" size="4" start="4" type="uint"/>
+    <field name="Number of Render Targets" size="4" start="4" type="uint" minus_one="true"/>
 
     <field name="sub-id" size="4" start="0" type="uint" default="0"/>
   </packet>
     <field name="Total Frame Height in Supertiles" size="8" start="24" type="uint"/>
     <field name="Total Frame Width in Supertiles" size="8" start="16" type="uint"/>
 
-    <field name="Supertile Height in Tiles minus 1" size="8" start="8" type="uint"/>
-    <field name="Supertile Width in Tiles minus 1" size="8" start="0" type="uint"/>
+    <field name="Supertile Height in Tiles" size="8" start="8" type="uint" minus_one="true"/>
+    <field name="Supertile Width in Tiles" size="8" start="0" type="uint" minus_one="true"/>
   </packet>
 
   <packet code="123" name="Multicore Rendering Tile List Set Base" cl="R">
     <field name="Min Coord Shader output segments required in play in addition to VCM cache size" size="4" start="36" type="uint"/>
 
     <field name="Coordinate Shader input VPM segment size" size="4" start="5b" type="uint"/>
-    <field name="Min Coord Shader input segments required in play minus 1" size="4" start="44" type="uint"/>
+    <field name="Min Coord Shader input segments required in play" size="4" start="44" type="uint" minus_one="true"/>
 
     <field name="Vertex Shader output VPM segment size" size="4" start="6b" type="uint"/>
     <field name="Min Vertex Shader output segments required in play in addition to VCM cache size" size="4" start="52" type="uint"/>
 
     <field name="Vertex Shader input VPM segment size" size="4" start="7b" type="uint"/>
-    <field name="Min Vertex Shader input segments required in play minus 1" size="4" start="60" type="uint"/>
+    <field name="Min Vertex Shader input segments required in play" size="4" start="60" type="uint" minus_one="true"/>
 
     <field name="Address of default attribute values" size="32" start="8b" type="address"/>
 
index fb4425968c36028db82afc8f0b600c2ef6c00d84..5a335d89c225fc7c2b6058a1bb8eaad3cb30851a 100644 (file)
 
   <struct name="Transform Feedback Output Data Spec">
     <field name="First Shaded Vertex Value to output" size="8" start="0" type="uint"/>
-    <field name="Number of consecutive Vertex Values to output as 32-bit values minus 1" size="4" start="8" type="uint"/>
+    <field name="Number of consecutive Vertex Values to output as 32-bit values" size="4" start="8" type="uint" minus_one="true"/>
     <field name="Output Buffer to write to" size="2" start="12" type="uint"/>
   </struct>
 
   </packet>
 
   <packet name="Number of Layers" code="119">
-    <field name="Number of Layers Minus 1" size="8" start="0" type="uint"/>
+    <field name="Number of Layers" size="8" start="0" type="uint" minus_one="true"/>
   </packet>
 
   <packet code="120" name="Tile Binning Mode Configuration (Part1)">
 
-    <field name="Height (in pixels minus 1)" size="12" start="48" type="uint"/>
-    <field name="Width (in pixels minus 1)" size="12" start="32" type="uint"/>
+    <field name="Height (in pixels)" size="12" start="48" type="uint" minus_one="true"/>
+    <field name="Width (in pixels)" size="12" start="32" type="uint" minus_one="true"/>
 
     <field name="Double-buffer in non-ms mode" size="1" start="15" type="bool"/>
     <field name="Multisample Mode (4x)" size="1" start="14" type="bool"/>
       <value name="Render target maximum 128bpp" value="2"/>
     </field>
 
-    <field name="Number of Render Targets minus 1" size="4" start="8" type="uint"/>
+    <field name="Number of Render Targets" size="4" start="8" type="uint" minus_one="true"/>
 
     <field name="tile allocation block size" size="2" start="4" type="uint">
       <value name="tile allocation block size 64b" value="0"/>
 
     <field name="Image Height (pixels)" size="16" start="24" type="uint"/>
     <field name="Image Width (pixels)" size="16" start="8" type="uint"/>
-    <field name="Number of Render Targets Minus 1" size="4" start="4" type="uint"/>
+    <field name="Number of Render Targets" size="4" start="4" type="uint" minus_one="true"/>
 
     <field name="sub-id" size="4" start="0" type="uint" default="0"/>
   </packet>
     <field name="Total Frame Height in Supertiles" size="8" start="24" type="uint"/>
     <field name="Total Frame Width in Supertiles" size="8" start="16" type="uint"/>
 
-    <field name="Supertile Height in Tiles minus 1" size="8" start="8" type="uint"/>
-    <field name="Supertile Width in Tiles minus 1" size="8" start="0" type="uint"/>
+    <field name="Supertile Height in Tiles" size="8" start="8" type="uint" minus_one="true"/>
+    <field name="Supertile Width in Tiles" size="8" start="0" type="uint" minus_one="true"/>
   </packet>
 
   <packet code="123" name="Multicore Rendering Tile List Set Base" cl="R">
     <field name="Min Coord Shader output segments required in play in addition to VCM cache size" size="4" start="36" type="uint"/>
 
     <field name="Coordinate Shader input VPM segment size" size="4" start="5b" type="uint"/>
-    <field name="Min Coord Shader input segments required in play minus 1" size="4" start="44" type="uint"/>
+    <field name="Min Coord Shader input segments required in play" size="4" start="44" type="uint" minus_one="true"/>
 
     <field name="Vertex Shader output VPM segment size" size="4" start="6b" type="uint"/>
     <field name="Min Vertex Shader output segments required in play in addition to VCM cache size" size="4" start="52" type="uint"/>
 
     <field name="Vertex Shader input VPM segment size" size="4" start="7b" type="uint"/>
-    <field name="Min Vertex Shader input segments required in play minus 1" size="4" start="60" type="uint"/>
+    <field name="Min Vertex Shader input segments required in play" size="4" start="60" type="uint" minus_one="true"/>
 
     <field name="Address of default attribute values" size="32" start="8b" type="address"/>
 
index ef7dd375bf72659b3045be60b3f96798c6ca1916..c67104df234804d7fb96141f46aaf06b6817f18f 100644 (file)
@@ -121,7 +121,7 @@ v3d_set_transform_feedback_outputs(struct v3d_uncompiled_shader *so,
                                  * values at the start.
                                  */
                                 .first_shaded_vertex_value_to_output = vpm_start_offset,
-                                .number_of_consecutive_vertex_values_to_output_as_32_bit_values_minus_1 = write_size - 1,
+                                .number_of_consecutive_vertex_values_to_output_as_32_bit_values = write_size,
                                 .output_buffer_to_write_to = buffer,
                         };
 
index 1cf4d803f68e3d3238bc7bc47f0813334a90c177..1e8b472a27dc06ccd09ffa44747999d4b958f043 100644 (file)
@@ -78,10 +78,10 @@ v3d_start_draw(struct v3d_context *v3d)
 
         cl_emit(&job->bcl, TILE_BINNING_MODE_CONFIGURATION_PART1, config) {
 #if V3D_VERSION >= 40
-                config.width_in_pixels_minus_1 = v3d->framebuffer.width - 1;
-                config.height_in_pixels_minus_1 = v3d->framebuffer.height - 1;
-                config.number_of_render_targets_minus_1 =
-                        MAX2(v3d->framebuffer.nr_cbufs, 1) - 1;
+                config.width_in_pixels = v3d->framebuffer.width;
+                config.height_in_pixels = v3d->framebuffer.height;
+                config.number_of_render_targets =
+                        MAX2(v3d->framebuffer.nr_cbufs, 1);
 #else /* V3D_VERSION < 40 */
                 config.tile_state_data_array_base_address =
                         cl_address(job->tile_state, 0);
@@ -214,6 +214,9 @@ v3d_emit_gl_shader_state(struct v3d_context *v3d,
                 shader.fragment_shader_uniforms_address = fs_uniforms;
 
 #if V3D_VERSION >= 41
+                shader.min_coord_shader_input_segments_required_in_play = 1;
+                shader.min_vertex_shader_input_segments_required_in_play = 1;
+
                 shader.coordinate_shader_4_way_threadable =
                         v3d->prog.cs->prog_data.vs->base.threads == 4;
                 shader.vertex_shader_4_way_threadable =
index 766f7909c17c6f66dc7dc89568aa64f2332b1335..549ad1a456e80067b6828e8c078aebcdc05d73aa 100644 (file)
@@ -539,8 +539,7 @@ v3dX(emit_rcl)(struct v3d_job *job)
                 config.image_width_pixels = job->draw_width;
                 config.image_height_pixels = job->draw_height;
 
-                config.number_of_render_targets_minus_1 =
-                        MAX2(nr_cbufs, 1) - 1;
+                config.number_of_render_targets = MAX2(nr_cbufs, 1);
 
                 config.multisample_mode_4x = job->msaa;
 
@@ -709,8 +708,8 @@ v3dX(emit_rcl)(struct v3d_job *job)
                 config.total_frame_width_in_tiles = job->draw_tiles_x;
                 config.total_frame_height_in_tiles = job->draw_tiles_y;
 
-                config.supertile_width_in_tiles_minus_1 = supertile_w - 1;
-                config.supertile_height_in_tiles_minus_1 = supertile_h - 1;
+                config.supertile_width_in_tiles = supertile_w;
+                config.supertile_height_in_tiles = supertile_h;
 
                 config.total_frame_width_in_supertiles = frame_w_in_supertiles;
                 config.total_frame_height_in_supertiles = frame_h_in_supertiles;