zink: various fixes for custom sample locations
this is still not technically correct, as I'm seeing some weird fails on ANV, at least, and also it maybe needs a pass to strip InterpolateAtSample (related?), but it is now actually enabling custom sample locations Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37618>
This commit is contained in:
committed by
Marge Bot
parent
911f033058
commit
e12d019b9d
@@ -639,12 +639,11 @@
|
||||
},
|
||||
"GL_ARB_sample_locations": {
|
||||
"extensions": {
|
||||
"VK_EXT_extended_dynamic_state": 1,
|
||||
"VK_EXT_sample_locations": 1
|
||||
},
|
||||
"features": {
|
||||
"VkPhysicalDeviceExtendedDynamicStateFeaturesEXT": {
|
||||
"extendedDynamicState": true
|
||||
"properties": {
|
||||
"VkPhysicalDeviceSampleLocationsPropertiesEXT": {
|
||||
"variableSampleLocations": true
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
@@ -45,231 +45,6 @@ spec@arb_framebuffer_object@execution@msaa-alpha-to-coverage_alpha-to-one_write-
|
||||
spec@arb_gpu_shader_fp64@execution@arb_gpu_shader_fp64-tf-separate,Fail
|
||||
spec@arb_program_interface_query@arb_program_interface_query-getprogramresourceindex,Fail
|
||||
spec@arb_program_interface_query@arb_program_interface_query-getprogramresourceindex@'vs_input2[1][0]' on GL_PROGRAM_INPUT,Fail
|
||||
spec@arb_sample_locations@test,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 1- X: 0- Y: 0- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 1- X: 0- Y: 0- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 1- X: 0- Y: 1- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 1- X: 0- Y: 1- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 1- X: 0- Y: 2- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 1- X: 0- Y: 2- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 1- X: 0- Y: 3- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 1- X: 0- Y: 3- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 1- X: 0- Y: 4- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 1- X: 0- Y: 4- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 1- X: 0- Y: 5- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 1- X: 0- Y: 5- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 1- X: 0- Y: 6- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 1- X: 0- Y: 6- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 1- X: 1- Y: 0- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 1- X: 1- Y: 0- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 1- X: 1- Y: 1- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 1- X: 1- Y: 1- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 1- X: 1- Y: 2- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 1- X: 1- Y: 2- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 1- X: 1- Y: 3- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 1- X: 1- Y: 3- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 1- X: 1- Y: 4- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 1- X: 1- Y: 4- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 1- X: 1- Y: 5- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 1- X: 1- Y: 5- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 1- X: 1- Y: 6- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 1- X: 1- Y: 6- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 1- X: 2- Y: 0- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 1- X: 2- Y: 0- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 1- X: 2- Y: 1- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 1- X: 2- Y: 1- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 1- X: 2- Y: 2- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 1- X: 2- Y: 2- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 1- X: 2- Y: 3- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 1- X: 2- Y: 3- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 1- X: 2- Y: 4- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 1- X: 2- Y: 4- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 1- X: 2- Y: 5- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 1- X: 2- Y: 5- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 1- X: 2- Y: 6- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 1- X: 2- Y: 6- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 1- X: 3- Y: 0- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 1- X: 3- Y: 0- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 1- X: 3- Y: 1- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 1- X: 3- Y: 1- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 1- X: 3- Y: 2- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 1- X: 3- Y: 2- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 1- X: 3- Y: 3- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 1- X: 3- Y: 3- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 1- X: 3- Y: 4- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 1- X: 3- Y: 4- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 1- X: 3- Y: 5- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 1- X: 3- Y: 5- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 1- X: 3- Y: 6- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 1- X: 3- Y: 6- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 2- X: 0- Y: 0- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 2- X: 0- Y: 0- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 2- X: 0- Y: 1- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 2- X: 0- Y: 1- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 2- X: 0- Y: 2- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 2- X: 0- Y: 2- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 2- X: 0- Y: 3- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 2- X: 0- Y: 3- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 2- X: 0- Y: 4- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 2- X: 0- Y: 4- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 2- X: 0- Y: 5- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 2- X: 0- Y: 5- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 2- X: 0- Y: 6- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 2- X: 0- Y: 6- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 2- X: 1- Y: 0- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 2- X: 1- Y: 0- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 2- X: 1- Y: 1- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 2- X: 1- Y: 1- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 2- X: 1- Y: 2- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 2- X: 1- Y: 2- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 2- X: 1- Y: 3- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 2- X: 1- Y: 3- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 2- X: 1- Y: 4- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 2- X: 1- Y: 4- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 2- X: 1- Y: 5- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 2- X: 1- Y: 5- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 2- X: 1- Y: 6- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 2- X: 1- Y: 6- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 2- X: 2- Y: 0- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 2- X: 2- Y: 0- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 2- X: 2- Y: 1- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 2- X: 2- Y: 1- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 2- X: 2- Y: 2- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 2- X: 2- Y: 2- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 2- X: 2- Y: 3- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 2- X: 2- Y: 3- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 2- X: 2- Y: 4- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 2- X: 2- Y: 4- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 2- X: 2- Y: 5- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 2- X: 2- Y: 5- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 2- X: 2- Y: 6- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 2- X: 2- Y: 6- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 2- X: 3- Y: 0- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 2- X: 3- Y: 0- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 2- X: 3- Y: 1- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 2- X: 3- Y: 1- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 2- X: 3- Y: 2- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 2- X: 3- Y: 2- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 2- X: 3- Y: 3- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 2- X: 3- Y: 3- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 2- X: 3- Y: 4- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 2- X: 3- Y: 4- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 2- X: 3- Y: 5- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 2- X: 3- Y: 5- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 2- X: 3- Y: 6- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 2- X: 3- Y: 6- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 4- X: 0- Y: 0- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 4- X: 0- Y: 0- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 4- X: 0- Y: 1- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 4- X: 0- Y: 1- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 4- X: 0- Y: 2- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 4- X: 0- Y: 2- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 4- X: 0- Y: 3- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 4- X: 0- Y: 3- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 4- X: 0- Y: 4- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 4- X: 0- Y: 4- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 4- X: 0- Y: 5- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 4- X: 0- Y: 5- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 4- X: 0- Y: 6- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 4- X: 0- Y: 6- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 4- X: 1- Y: 0- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 4- X: 1- Y: 0- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 4- X: 1- Y: 1- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 4- X: 1- Y: 1- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 4- X: 1- Y: 2- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 4- X: 1- Y: 2- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 4- X: 1- Y: 3- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 4- X: 1- Y: 3- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 4- X: 1- Y: 4- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 4- X: 1- Y: 4- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 4- X: 1- Y: 5- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 4- X: 1- Y: 5- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 4- X: 1- Y: 6- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 4- X: 1- Y: 6- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 4- X: 2- Y: 0- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 4- X: 2- Y: 0- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 4- X: 2- Y: 1- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 4- X: 2- Y: 1- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 4- X: 2- Y: 2- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 4- X: 2- Y: 2- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 4- X: 2- Y: 3- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 4- X: 2- Y: 3- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 4- X: 2- Y: 4- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 4- X: 2- Y: 4- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 4- X: 2- Y: 5- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 4- X: 2- Y: 5- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 4- X: 2- Y: 6- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 4- X: 2- Y: 6- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 4- X: 3- Y: 0- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 4- X: 3- Y: 0- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 4- X: 3- Y: 1- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 4- X: 3- Y: 1- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 4- X: 3- Y: 2- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 4- X: 3- Y: 2- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 4- X: 3- Y: 3- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 4- X: 3- Y: 3- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 4- X: 3- Y: 4- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 4- X: 3- Y: 4- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 4- X: 3- Y: 5- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 4- X: 3- Y: 5- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 4- X: 3- Y: 6- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 4- X: 3- Y: 6- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 8- X: 0- Y: 0- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 8- X: 0- Y: 0- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 8- X: 0- Y: 1- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 8- X: 0- Y: 1- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 8- X: 0- Y: 2- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 8- X: 0- Y: 2- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 8- X: 0- Y: 3- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 8- X: 0- Y: 3- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 8- X: 0- Y: 4- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 8- X: 0- Y: 4- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 8- X: 0- Y: 5- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 8- X: 0- Y: 5- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 8- X: 0- Y: 6- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 8- X: 0- Y: 6- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 8- X: 1- Y: 0- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 8- X: 1- Y: 0- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 8- X: 1- Y: 1- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 8- X: 1- Y: 1- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 8- X: 1- Y: 2- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 8- X: 1- Y: 2- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 8- X: 1- Y: 3- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 8- X: 1- Y: 3- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 8- X: 1- Y: 4- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 8- X: 1- Y: 4- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 8- X: 1- Y: 5- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 8- X: 1- Y: 5- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 8- X: 1- Y: 6- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 8- X: 1- Y: 6- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 8- X: 2- Y: 0- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 8- X: 2- Y: 0- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 8- X: 2- Y: 1- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 8- X: 2- Y: 1- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 8- X: 2- Y: 2- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 8- X: 2- Y: 2- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 8- X: 2- Y: 3- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 8- X: 2- Y: 3- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 8- X: 2- Y: 4- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 8- X: 2- Y: 4- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 8- X: 2- Y: 5- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 8- X: 2- Y: 5- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 8- X: 2- Y: 6- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 8- X: 2- Y: 6- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 8- X: 3- Y: 0- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 8- X: 3- Y: 0- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 8- X: 3- Y: 1- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 8- X: 3- Y: 1- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 8- X: 3- Y: 2- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 8- X: 3- Y: 2- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 8- X: 3- Y: 3- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 8- X: 3- Y: 3- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 8- X: 3- Y: 4- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 8- X: 3- Y: 4- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 8- X: 3- Y: 5- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 8- X: 3- Y: 5- Grid: true,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 8- X: 3- Y: 6- Grid: false,Fail
|
||||
spec@arb_sample_locations@test@MSAA: 8- X: 3- Y: 6- Grid: true,Fail
|
||||
spec@arb_sample_shading@samplemask 2,Fail
|
||||
spec@arb_sample_shading@samplemask 2@0.250000 mask_in_one,Fail
|
||||
spec@arb_sample_shading@samplemask 2@0.500000 mask_in_one,Fail
|
||||
|
||||
@@ -2884,24 +2884,22 @@ zink_update_fbfetch(struct zink_context *ctx)
|
||||
return ret;
|
||||
}
|
||||
|
||||
void
|
||||
static void
|
||||
zink_update_vk_sample_locations(struct zink_context *ctx)
|
||||
{
|
||||
if (ctx->gfx_pipeline_state.sample_locations_enabled && ctx->sample_locations_changed) {
|
||||
unsigned samples = ctx->gfx_pipeline_state.rast_samples + 1;
|
||||
unsigned idx = util_logbase2_ceil(MAX2(samples, 1));
|
||||
VkExtent2D grid_size = zink_screen(ctx->base.screen)->maxSampleLocationGridSize[idx];
|
||||
|
||||
for (unsigned pixel = 0; pixel < grid_size.width * grid_size.height; pixel++) {
|
||||
for (unsigned sample = 0; sample < samples; sample++) {
|
||||
unsigned pixel_x = pixel % grid_size.width;
|
||||
unsigned pixel_y = pixel / grid_size.width;
|
||||
unsigned wi = pixel * samples + sample;
|
||||
unsigned ri = (pixel_y * grid_size.width + pixel_x % grid_size.width);
|
||||
ri = ri * samples + sample;
|
||||
ctx->vk_sample_locations[wi].x = (ctx->sample_locations[ri] & 0xf) / 16.0f;
|
||||
ctx->vk_sample_locations[wi].y = (ctx->sample_locations[ri] >> 4) / 16.0f;
|
||||
}
|
||||
unsigned samples = ctx->gfx_pipeline_state.rast_samples + 1;
|
||||
unsigned idx = util_logbase2_ceil(MAX2(samples, 1));
|
||||
VkExtent2D grid_size = zink_screen(ctx->base.screen)->maxSampleLocationGridSize[idx];
|
||||
|
||||
for (unsigned pixel = 0; pixel < grid_size.width * grid_size.height; pixel++) {
|
||||
for (unsigned sample = 0; sample < samples; sample++) {
|
||||
unsigned pixel_x = pixel % grid_size.width;
|
||||
unsigned pixel_y = pixel / grid_size.width;
|
||||
unsigned wi = pixel * samples + sample;
|
||||
unsigned ri = (pixel_y * grid_size.width + pixel_x % grid_size.width);
|
||||
ri = ri * samples + sample;
|
||||
ctx->vk_sample_locations[wi].x = (ctx->sample_locations[ri] & 0xf) / 16.0f;
|
||||
ctx->vk_sample_locations[wi].y = (ctx->sample_locations[ri] >> 4) / 16.0f;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3042,7 +3040,8 @@ begin_rendering(struct zink_context *ctx, bool check_msaa_expand)
|
||||
{
|
||||
unsigned clear_buffers = 0;
|
||||
struct zink_screen *screen = zink_screen(ctx->base.screen);
|
||||
zink_update_vk_sample_locations(ctx);
|
||||
if (ctx->gfx_pipeline_state.custom_sample_locations && ctx->sample_locations_changed)
|
||||
zink_update_vk_sample_locations(ctx);
|
||||
if (ctx->has_swapchain)
|
||||
zink_render_fixup_swapchain(ctx);
|
||||
bool has_depth = false;
|
||||
@@ -3608,9 +3607,9 @@ zink_init_vk_sample_locations(struct zink_context *ctx, VkSampleLocationsInfoEXT
|
||||
unsigned idx = util_logbase2_ceil(MAX2(ctx->gfx_pipeline_state.rast_samples + 1, 1));
|
||||
loc->sType = VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT;
|
||||
loc->pNext = NULL;
|
||||
loc->sampleLocationsPerPixel = 1 << idx;
|
||||
loc->sampleLocationsCount = ctx->gfx_pipeline_state.rast_samples + 1;
|
||||
loc->sampleLocationGridSize = screen->maxSampleLocationGridSize[idx];
|
||||
loc->sampleLocationsPerPixel = ctx->gfx_pipeline_state.rast_samples + 1;
|
||||
loc->sampleLocationsCount = loc->sampleLocationGridSize.width * loc->sampleLocationGridSize.height * loc->sampleLocationsPerPixel;
|
||||
loc->pSampleLocations = ctx->vk_sample_locations;
|
||||
}
|
||||
|
||||
@@ -3828,7 +3827,7 @@ flush_batch(struct zink_context *ctx, bool sync)
|
||||
ctx->dd.bindless_bound = false;
|
||||
ctx->di.bindless_refs_dirty = true;
|
||||
ctx->index_buffer = NULL;
|
||||
ctx->sample_locations_changed = ctx->gfx_pipeline_state.sample_locations_enabled;
|
||||
ctx->sample_locations_changed = ctx->base.screen->caps.programmable_sample_locations;
|
||||
if (zink_screen(ctx->base.screen)->info.dynamic_state2_feats.extendedDynamicState2PatchControlPoints) {
|
||||
VKCTX(CmdSetPatchControlPointsEXT)(ctx->bs->cmdbuf, ctx->gfx_pipeline_state.dyn_state2.vertices_per_patch);
|
||||
VKCTX(CmdSetPatchControlPointsEXT)(ctx->bs->reordered_cmdbuf, 1);
|
||||
@@ -4123,10 +4122,9 @@ zink_set_framebuffer_state(struct pipe_context *pctx,
|
||||
ctx->scissor_changed = true;
|
||||
|
||||
uint8_t rast_samples = ctx->fb_state.samples - 1;
|
||||
if (rast_samples != ctx->gfx_pipeline_state.rast_samples)
|
||||
if (rast_samples != ctx->gfx_pipeline_state.rast_samples) {
|
||||
zink_update_fs_key_samples(ctx);
|
||||
if (ctx->gfx_pipeline_state.rast_samples != rast_samples) {
|
||||
ctx->sample_locations_changed |= ctx->gfx_pipeline_state.sample_locations_enabled;
|
||||
ctx->sample_locations_changed |= ctx->gfx_pipeline_state.custom_sample_locations;
|
||||
if (screen->have_full_ds3)
|
||||
ctx->sample_mask_changed = true;
|
||||
else
|
||||
@@ -4179,8 +4177,8 @@ zink_set_sample_locations(struct pipe_context *pctx, size_t size, const uint8_t
|
||||
{
|
||||
struct zink_context *ctx = zink_context(pctx);
|
||||
|
||||
ctx->gfx_pipeline_state.sample_locations_enabled = size && locations;
|
||||
ctx->sample_locations_changed = ctx->gfx_pipeline_state.sample_locations_enabled;
|
||||
ctx->gfx_pipeline_state.custom_sample_locations = size && locations;
|
||||
ctx->sample_locations_changed = true;
|
||||
if (size > sizeof(ctx->sample_locations))
|
||||
size = sizeof(ctx->sample_locations);
|
||||
|
||||
@@ -5547,6 +5545,7 @@ zink_context_create(struct pipe_screen *pscreen, void *priv, unsigned flags)
|
||||
ctx->compute_pipeline_state.dirty = true;
|
||||
ctx->rp_changed = true;
|
||||
ctx->sample_mask_changed = true;
|
||||
ctx->sample_locations_changed = pscreen->caps.programmable_sample_locations;
|
||||
ctx->gfx_pipeline_state.gfx_prim_mode = MESA_PRIM_COUNT;
|
||||
ctx->gfx_pipeline_state.shader_rast_prim = MESA_PRIM_COUNT;
|
||||
ctx->gfx_pipeline_state.rast_prim = MESA_PRIM_COUNT;
|
||||
|
||||
@@ -183,9 +183,6 @@ zink_batch_no_rp(struct zink_context *ctx);
|
||||
void
|
||||
zink_batch_no_rp_safe(struct zink_context *ctx);
|
||||
|
||||
void
|
||||
zink_update_vk_sample_locations(struct zink_context *ctx);
|
||||
|
||||
static inline VkPipelineStageFlags
|
||||
zink_pipeline_flags_from_pipe_stage(mesa_shader_stage pstage)
|
||||
{
|
||||
|
||||
@@ -298,7 +298,7 @@ update_gfx_pipeline(struct zink_context *ctx, struct zink_batch_state *bs, enum
|
||||
}
|
||||
VKCTX(CmdSetDepthBiasEnable)(bs->cmdbuf, VK_TRUE);
|
||||
VKCTX(CmdSetTessellationDomainOriginEXT)(bs->cmdbuf, VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT);
|
||||
VKCTX(CmdSetSampleLocationsEnableEXT)(bs->cmdbuf, ctx->gfx_pipeline_state.sample_locations_enabled);
|
||||
VKCTX(CmdSetSampleLocationsEnableEXT)(bs->cmdbuf, ctx->gfx_pipeline_state.custom_sample_locations);
|
||||
VKCTX(CmdSetRasterizationStreamEXT)(bs->cmdbuf, 0);
|
||||
pipeline_changed = true;
|
||||
}
|
||||
@@ -450,8 +450,8 @@ emit_dynamic_state(struct zink_context *ctx, bool pipeline_changed, unsigned num
|
||||
ctx->dsa_state_changed = false;
|
||||
}
|
||||
|
||||
if (DYNAMIC_STATE != ZINK_NO_DYNAMIC_STATE) {
|
||||
if (ctx->sample_locations_changed) {
|
||||
if (ctx->sample_locations_changed) {
|
||||
if (ctx->gfx_pipeline_state.custom_sample_locations) {
|
||||
VkSampleLocationsInfoEXT loc;
|
||||
zink_init_vk_sample_locations(ctx, &loc);
|
||||
VKCTX(CmdSetSampleLocationsEXT)(bs->cmdbuf, &loc);
|
||||
@@ -1007,7 +1007,7 @@ update_mesh_pipeline(struct zink_context *ctx, struct zink_batch_state *bs)
|
||||
/* always rebind all stages */
|
||||
VKCTX(CmdBindShadersEXT)(bs->cmdbuf, ZINK_GFX_SHADER_COUNT, stages, ctx->mesh_program->objects);
|
||||
VKCTX(CmdBindShadersEXT)(bs->cmdbuf, 2, &stages[MESA_SHADER_TASK], &ctx->mesh_program->objects[MESA_SHADER_TASK]);
|
||||
VKCTX(CmdSetSampleLocationsEnableEXT)(bs->cmdbuf, ctx->gfx_pipeline_state.sample_locations_enabled);
|
||||
VKCTX(CmdSetSampleLocationsEnableEXT)(bs->cmdbuf, ctx->gfx_pipeline_state.custom_sample_locations);
|
||||
VKCTX(CmdSetDepthBiasEnable)(bs->cmdbuf, VK_TRUE);
|
||||
pipeline_changed = true;
|
||||
}
|
||||
|
||||
@@ -138,6 +138,12 @@ zink_create_gfx_pipeline(struct zink_screen *screen,
|
||||
ms_state.sampleShadingEnable = VK_TRUE;
|
||||
ms_state.minSampleShading = MIN2((float)(state->rast_samples + 1) / (state->min_samples + 1), 1.0f);
|
||||
}
|
||||
VkPipelineSampleLocationsStateCreateInfoEXT pslsci = {
|
||||
VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT,
|
||||
NULL,
|
||||
VK_TRUE,
|
||||
.sampleLocationsInfo.sType = VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT
|
||||
};
|
||||
|
||||
VkPipelineViewportStateCreateInfo viewport_state = {0};
|
||||
VkPipelineViewportDepthClipControlCreateInfoEXT clip = {
|
||||
@@ -208,6 +214,10 @@ zink_create_gfx_pipeline(struct zink_screen *screen,
|
||||
VK_DYNAMIC_STATE_STENCIL_REFERENCE,
|
||||
};
|
||||
unsigned state_count = 4;
|
||||
if (state->custom_sample_locations) {
|
||||
dynamicStateEnables[state_count++] = VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT;
|
||||
ms_state.pNext = &pslsci;
|
||||
}
|
||||
if (screen->info.have_EXT_extended_dynamic_state) {
|
||||
dynamicStateEnables[state_count++] = VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT;
|
||||
dynamicStateEnables[state_count++] = VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT;
|
||||
@@ -224,8 +234,6 @@ zink_create_gfx_pipeline(struct zink_screen *screen,
|
||||
if (!is_mesh)
|
||||
dynamicStateEnables[state_count++] = VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY;
|
||||
dynamicStateEnables[state_count++] = VK_DYNAMIC_STATE_CULL_MODE;
|
||||
if (state->sample_locations_enabled)
|
||||
dynamicStateEnables[state_count++] = VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT;
|
||||
} else {
|
||||
dynamicStateEnables[state_count++] = VK_DYNAMIC_STATE_VIEWPORT;
|
||||
dynamicStateEnables[state_count++] = VK_DYNAMIC_STATE_SCISSOR;
|
||||
@@ -521,14 +529,20 @@ zink_create_gfx_pipeline_output(struct zink_screen *screen, struct zink_gfx_pipe
|
||||
ms_state.sampleShadingEnable = VK_TRUE;
|
||||
ms_state.minSampleShading = MIN2((float)(state->rast_samples + 1) / (state->min_samples + 1), 1.0f);
|
||||
}
|
||||
VkPipelineSampleLocationsStateCreateInfoEXT pslsci = {
|
||||
VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT,
|
||||
NULL,
|
||||
VK_TRUE,
|
||||
.sampleLocationsInfo.sType = VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT
|
||||
};
|
||||
|
||||
VkDynamicState dynamicStateEnables[30] = {
|
||||
VK_DYNAMIC_STATE_BLEND_CONSTANTS,
|
||||
};
|
||||
unsigned state_count = 1;
|
||||
if (screen->info.have_EXT_extended_dynamic_state) {
|
||||
if (state->sample_locations_enabled)
|
||||
dynamicStateEnables[state_count++] = VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT;
|
||||
if (state->custom_sample_locations) {
|
||||
dynamicStateEnables[state_count++] = VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT;
|
||||
ms_state.pNext = &pslsci;
|
||||
}
|
||||
if (screen->info.have_EXT_color_write_enable)
|
||||
dynamicStateEnables[state_count++] = VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT;
|
||||
|
||||
@@ -844,7 +844,7 @@ zink_init_screen_caps(struct zink_screen *screen)
|
||||
|
||||
caps->programmable_sample_locations =
|
||||
screen->info.have_EXT_sample_locations &&
|
||||
screen->info.have_EXT_extended_dynamic_state;
|
||||
screen->info.sample_locations_props.variableSampleLocations;
|
||||
|
||||
caps->query_time_elapsed = screen->timestamp_valid_bits > 0;
|
||||
|
||||
|
||||
@@ -883,10 +883,11 @@ struct zink_gfx_pipeline_state {
|
||||
/* order matches zink_gfx_output_key */
|
||||
unsigned force_persample_interp:1;
|
||||
uint32_t rast_samples:6;
|
||||
uint32_t min_samples:6;
|
||||
uint32_t min_samples:5;
|
||||
uint32_t feedback_loop : 1;
|
||||
uint32_t feedback_loop_zs : 1;
|
||||
uint32_t rast_attachment_order : 1;
|
||||
uint32_t custom_sample_locations : 1;
|
||||
uint32_t rp_state : 16;
|
||||
VkSampleMask sample_mask;
|
||||
uint32_t blend_id;
|
||||
@@ -930,7 +931,6 @@ struct zink_gfx_pipeline_state {
|
||||
uint32_t vertex_strides[PIPE_MAX_ATTRIBS];
|
||||
struct zink_vertex_elements_hw_state *element_state;
|
||||
struct zink_zs_swizzle_key *shadow;
|
||||
bool sample_locations_enabled;
|
||||
enum mesa_prim shader_rast_prim, rast_prim; /* reduced type or max for unknown */
|
||||
union {
|
||||
struct {
|
||||
@@ -1068,10 +1068,11 @@ struct zink_gfx_output_key {
|
||||
struct {
|
||||
unsigned force_persample_interp:1;
|
||||
uint32_t rast_samples:6;
|
||||
uint32_t min_samples:6;
|
||||
uint32_t min_samples:5;
|
||||
uint32_t feedback_loop : 1;
|
||||
uint32_t feedback_loop_zs : 1;
|
||||
uint32_t rast_attachment_order : 1;
|
||||
uint32_t custom_sample_locations : 1;
|
||||
uint32_t rp_state : 16;
|
||||
};
|
||||
uint32_t key;
|
||||
@@ -1841,6 +1842,7 @@ struct zink_context {
|
||||
bool sample_locations_changed;
|
||||
VkSampleLocationEXT vk_sample_locations[PIPE_MAX_SAMPLE_LOCATION_GRID_SIZE * PIPE_MAX_SAMPLE_LOCATION_GRID_SIZE];
|
||||
uint8_t sample_locations[2 * 4 * 8 * 16];
|
||||
unsigned num_sample_locations;
|
||||
|
||||
struct pipe_stencil_ref stencil_ref;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user