PipelineCache: Handle nullptr mismatch of specialization info.
PipelineCache: Handle nullptr mismatch of specialization info.

It's valid in Vulkan for a shader to have specialization constants
and the pipeline to be lacking specialization constant data. This
could lead to a key match between the two even though there should
be a different shader payload. From the spec:

> It is legal for a SPIR-V module with specializations to be
> compiled into a pipeline where no specialization info was provided.
> SPIR-V specialization constants contain default values such that
> if a specialization is not provided.

Fix this by adding in the required checks. Should not affect perf.

Bug: b/150449637
Bug: angleproject:4426
Change-Id: I5f384420bdc1f03a36852db0b20393ae56452b62
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/41728
Tested-by: Nicolas Capens <51edc787c30f24c4904e8ffbb5523c3a9f7a451d@google.com>
Kokoro-Presubmit: Jamie Madill <7e492b4f1c8458024932de3ba475cbf015424c30@chromium.org>
Kokoro-Presubmit: kokoro <2ac7b1f3fa578934c95181d4272be0d3bca00121@google.com>
Reviewed-by: Nicolas Capens <51edc787c30f24c4904e8ffbb5523c3a9f7a451d@google.com>
Reviewed-by: Alexis Hétu <1c7141772178a7e80858c3db5052b328076f08f4@google.com>

bkaradzic/SwiftShader,google/swiftshader,bkaradzic/SwiftShader,google/swiftshader,bkaradzic/SwiftShader,bkaradzic/SwiftShader,bkaradzic/SwiftShader,google/swiftshader