mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-10-22 00:22:57 -05:00
A draw whose PA_SC_CONSERVATIVE_RASTERIZATION_CNTL (context 0x313) was not the default 0x6000 threw in DecodeState and the draw precheck. 0x6001 sets OVER_RAST_ENABLE and now decodes to Vulkan's overestimation mode, chained to the pipeline's rasterization state and its key. The device enables VK_EXT_conservative_rasterization only when its primitiveOverestimationSize is at most 1/256 pixel and it rasterizes degenerate triangles; elsewhere the pipeline throws. Overestimation is accepted only when triangles reach the rasterizer: VGT_GS_OUT_PRIM_TYPE behind a geometry shader, VGT_TF_PARAM's output topology behind tessellation, VGT_PRIMITIVE_TYPE otherwise. Other 0x313 values and centroid interpolation still throw. Adds the agc_driver_conservative_rasterization GPU test and extends agc_driver_graphics.