nine: avoid using post-compacted indices with state expecting pre-compacted ones
What does this MR do and why?
Certain state, such as the stream_*_mask
, and the arrays vtxstride
and stream_freq
must be maintained and accessed using pre-compacted indices. The arrays themselves are stored into using pre-compacted indices, while it is cleaner to maintain the masks by storing bits for pre-compacted (instead of post-compacted) indices.
Tests:
Tested the farcry and crysis traces uploaded at #11283 (closed). The flickering of the trees is fixed.
mesa test summary
[1/2] Running all tests.
1/62 mesa:util / drirc xml validation OK 0.05s
2/62 mesa:util / process OK 0.02s
3/62 mesa:util / process_with_overrides OK 0.01s
4/62 mesa:util / clear OK 0.01s
5/62 mesa:util / xmlconfig OK 0.06s
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:format / srgb OK 0.01s
18/62 mesa:util / vma_random OK 0.03s
19/62 mesa:format / u_format_compatible_test OK 0.02s
20/62 mesa:format / u_format_test OK 0.04s
21/62 mesa:compiler+spirv / spirv_tests OK 0.02s
22/62 mesa:intel / genxml sort gen4.xml OK 0.15s
23/62 mesa:intel / genxml sort gen45.xml OK 0.12s
24/62 mesa:compiler+nir / nir_algebraic_parser OK 0.38s
25/62 mesa:intel / genxml sort gen5.xml OK 0.13s
26/62 mesa:intel / genxml sort gen6.xml OK 0.20s
27/62 mesa:intel / genxml sort gen7.xml OK 0.24s
28/62 mesa:intel / genxml sort gen75.xml OK 0.19s
29/62 mesa:intel / genxml sort gen8.xml OK 0.19s
30/62 mesa:intel / genxml sort gen9.xml OK 0.28s
31/62 mesa:intel / genxml sort gen11.xml OK 0.21s
32/62 mesa:intel / genxml sort gen12.xml OK 0.16s
33/62 mesa:intel / genxml sort gen125.xml OK 0.18s
34/62 mesa:compiler+nir / nir_tests OK 1.36s
35/62 mesa:intel / genxml sort gen20.xml OK 0.17s
36/62 mesa:intel / intel_device_info_test OK 0.01s
37/62 mesa:intel / genxml sort gen125_rt.xml OK 0.12s
38/62 mesa:intel / isl_surf_get_image_offset OK 0.02s
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.03s
42/62 mesa:intel / genxml sort gen20_rt.xml OK 0.11s
43/62 mesa:intel / genxml_test OK 0.02s
44/62 mesa:gallium / gallium-aux OK 0.01s
45/62 mesa:intel / intel_compiler_brw_tests OK 5.04s
46/62 mesa:llvmpipe / lp_test_format OK 5.22s
47/62 mesa:llvmpipe / lp_test_arit OK 0.54s
48/62 mesa:intel / intel_compiler_elk_tests OK 8.05s
49/62 mesa:util / util_tests OK 9.69s
50/62 mesa:llvmpipe / lp_test_printf OK 0.03s
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.01s
54/62 mesa / translate_test sse OK 0.02s
55/62 mesa / translate_test sse2 OK 0.03s
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.01s
59/62 mesa:mesa / main-test OK 0.01s
60/62 mesa:gallium / pipe_barrier_test OK 0.91s
61/62 mesa:llvmpipe / lp_test_conv OK 4.05s
62/62 mesa:llvmpipe / lp_test_blend OK 11.27s
Ok: 62
Expected Fail: 0
Fail: 0
Unexpected Pass: 0
Skipped: 0
Timeout: 0
NineTests before patch
[==========] 110 tests from 1 test suite ran. (21557 ms total)
[ PASSED ] 104 tests.
[ FAILED ] 6 tests, listed below:
[ FAILED ] Xnine.specular_lighting
[ FAILED ] Xnine.fog
[ FAILED ] Xnine.blend
[ FAILED ] Xnine.depth_buffer
[ FAILED ] Xnine.fp_special
[ FAILED ] Xnine.table_fog_zw
NineTests after patch
[==========] 110 tests from 1 test suite ran. (18772 ms total)
[ PASSED ] 104 tests.
[ FAILED ] 6 tests, listed below:
[ FAILED ] Xnine.specular_lighting
[ FAILED ] Xnine.fog
[ FAILED ] Xnine.blend
[ FAILED ] Xnine.depth_buffer
[ FAILED ] Xnine.fp_special
[ FAILED ] Xnine.table_fog_zw
Prior work: !29651 (closed)
Edited by Amol Surati