mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-05-13 10:51:35 +00:00
Calculate a hashcode for each TypeInfo, use these hashcodes to quickly eliminate full base class walks for As() and Is(). Use the hashcodes to optimize IsAnyOf() calls where the result is false. Benchmarks: A: base.bench B: new.bench Test name | Δ (A → B) | % (A → B) --------------------------------------+--------------+----------- ParseWGSL/"particles.wgsl" | -78.84µs | -3.2% GenerateWGSL/"particles.wgsl" | -11.264µs | -5.8% GenerateGLSL/"particles.wgsl" | -2.610127ms | -7.2% GenerateMSL/"simple_compute.wgsl" | -41.187µs | -7.2% GenerateMSL/"particles.wgsl" | -818.689µs | -7.2% GenerateGLSL/"simple_compute.wgsl" | -48.362µs | -7.4% GenerateGLSL/"simple_vertex.wgsl" | -49.992µs | -7.7% GenerateSPIRV/"simple_compute.wgsl" | -42.869µs | -7.8% GenerateSPIRV/"particles.wgsl" | -835.423µs | -7.9% GenerateSPIRV/"simple_fragment.wgsl" | -33.868µs | -8.1% GenerateGLSL/"simple_fragment.wgsl" | -51.368µs | -8.2% GenerateSPIRV/"simple_vertex.wgsl" | -39.096µs | -8.3% GenerateHLSL/"particles.wgsl" | -1.437747ms | -8.3% GenerateMSL/"simple_vertex.wgsl" | -57.232µs | -8.5% GenerateHLSL/"simple_compute.wgsl" | -85.981µs | -8.9% GenerateHLSL/"simple_fragment.wgsl" | -73.095µs | -9.2% GenerateMSL/"simple_fragment.wgsl" | -61.257µs | -9.3% GenerateHLSL/"simple_vertex.wgsl" | -76.661µs | -9.4% Change-Id: Idb03bf871b08274b5b52ef55e41450ed3448a60f Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/76960 Reviewed-by: David Neto <dneto@google.com> Commit-Queue: Ben Clayton <bclayton@google.com> Kokoro: Ben Clayton <bclayton@google.com>