Skip to content

Draft: nine: map instancedata_mask, ensure array accesses use pre-mapped indices

Amol Surati requested to merge asurati/mesa:mesa.11283 into main

What does this MR do and why?

stream_usage_mask contains the bits corresponding to post-translated (hole-removal) stream-numbers. It is compared/bitwise-anded with stream_instancedata_mask, but stream_instancedata_mask contained bits corresponding to pre-translated stream-numbers. Apply the translation to stream_instancedata_mask also, so that both masks maintain bits for post-translated stream-numbers.

Despite the translation, the reading of stream_freq and vtxstride arrays must use pre-translated indices.


Tests:

mesa tests summary
[1/2] Running all tests.
 1/62 mesa:util / drirc xml validation                 OK               0.03s
 2/62 mesa:util / process                              OK               0.01s
 3/62 mesa:util / xmlconfig                            OK               0.03s
 4/62 mesa:util / process_with_overrides               OK               0.02s
 5/62 mesa:util / clear                                OK               0.02s
 6/62 mesa:util / collision                            OK               0.02s
 7/62 mesa:util / delete_and_lookup                    OK               0.02s
 8/62 mesa:util / delete_management                    OK               0.02s
 9/62 mesa:util / destroy_callback                     OK               0.02s
10/62 mesa:util / insert_and_lookup                    OK               0.02s
11/62 mesa:util / insert_many                          OK               0.02s
12/62 mesa:util / null_destroy                         OK               0.02s
13/62 mesa:util / random_entry                         OK               0.02s
14/62 mesa:util / remove_key                           OK               0.02s
15/62 mesa:util / remove_null                          OK               0.02s
16/62 mesa:util / replacement                          OK               0.02s
17/62 mesa:util / vma_random                           OK               0.02s
18/62 mesa:format / srgb                               OK               0.02s
19/62 mesa:format / u_format_compatible_test           OK               0.03s
20/62 mesa:format / u_format_test                      OK               0.05s
21/62 mesa:compiler+spirv / spirv_tests                OK               0.02s
22/62 mesa:intel / genxml sort gen4.xml                OK               0.14s
23/62 mesa:intel / genxml sort gen45.xml               OK               0.25s
24/62 mesa:compiler+nir / nir_tests                    OK               0.58s
25/62 mesa:compiler+nir / nir_algebraic_parser         OK               0.62s
26/62 mesa:intel / genxml sort gen5.xml                OK               0.19s
27/62 mesa:intel / genxml sort gen6.xml                OK               0.20s
28/62 mesa:intel / genxml sort gen7.xml                OK               0.20s
29/62 mesa:intel / genxml sort gen75.xml               OK               0.19s
30/62 mesa:intel / genxml sort gen8.xml                OK               0.21s
31/62 mesa:intel / genxml sort gen11.xml               OK               0.21s
32/62 mesa:intel / genxml sort gen9.xml                OK               0.24s
33/62 mesa:intel / genxml sort gen12.xml               OK               0.16s
34/62 mesa:intel / genxml sort gen20.xml               OK               0.14s
35/62 mesa:intel / genxml sort gen125.xml              OK               0.19s
36/62 mesa:intel / intel_device_info_test              OK               0.01s
37/62 mesa:intel / isl_surf_get_image_offset           OK               0.01s
38/62 mesa:intel / genxml sort gen125_rt.xml           OK               0.13s
39/62 mesa:intel / isl_aux_info                        OK               0.02s
40/62 mesa:intel / isl_tile_std_y                      OK               0.02s
41/62 mesa:intel / isl_tilememcpy                      OK               0.02s
42/62 mesa:intel / genxml sort gen20_rt.xml            OK               0.12s
43/62 mesa:intel / genxml_test                         OK               0.01s
44/62 mesa:gallium / gallium-aux                       OK               0.01s
45/62 mesa:intel / intel_compiler_brw_tests            OK               0.86s
46/62 mesa:intel / intel_compiler_elk_tests            OK               1.42s
47/62 mesa:llvmpipe / lp_test_arit                     OK               0.59s
48/62 mesa:util / util_tests                           OK               4.71s
49/62 mesa:llvmpipe / lp_test_printf                   OK               0.05s
50/62 mesa:gallium / pipe_barrier_test                 OK               0.91s
51/62 mesa:gallium / u_half_test                       OK               0.02s
52/62 mesa / translate_test x86                        OK               0.03s
53/62 mesa / translate_test nosse                      OK               0.02s
54/62 mesa / translate_test sse                        OK               0.03s
55/62 mesa / translate_test sse2                       OK               0.02s
56/62 mesa / translate_test sse3                       OK               0.03s
57/62 mesa / translate_test sse4.1                     OK               0.03s
58/62 mesa:gallium / u_prim_verts_test                 OK               0.02s
59/62 mesa:mesa / main-test                            OK               0.02s
60/62 mesa:llvmpipe / lp_test_format                   OK               5.12s
61/62 mesa:llvmpipe / lp_test_conv                     OK               4.01s
62/62 mesa:llvmpipe / lp_test_blend                    OK              10.90s
Xnine tests summary
[==========] 110 tests from 1 test suite ran. (16586 ms total)
[  PASSED  ] 103 tests.
[  FAILED  ] 7 tests, listed below:
[  FAILED  ] Xnine.lighting
[  FAILED  ] Xnine.fog
[  FAILED  ] Xnine.blend
[  FAILED  ] Xnine.depth_buffer
[  FAILED  ] Xnine.fp_special
[  FAILED  ] Xnine.table_fog_zw
[  FAILED  ] Xnine.drawindexedprimitiveup

The Xnine tests with the distro-provided 24.1.1 32-bit d3dadapter9.so crashes within crocus_populate_vs_key.

To establish a baseline, the Xnine tests were run with the distro-provided 24.1.1 64-bit d3dadapter9.so, that did not experience any crash.

Xnine tests summary, baseline
[==========] 110 tests from 1 test suite ran. (14888 ms total)
[  PASSED  ] 101 tests.
[  FAILED  ] 9 tests, listed below:
[  FAILED  ] Xnine.lighting
[  FAILED  ] Xnine.specular_lighting
[  FAILED  ] Xnine.fog
[  FAILED  ] Xnine.blend
[  FAILED  ] Xnine.depth_buffer
[  FAILED  ] Xnine.fp_special
[  FAILED  ] Xnine.stencil_cull
[  FAILED  ] Xnine.table_fog_zw
[  FAILED  ] Xnine.drawindexedprimitiveup

Merge request reports