On 25/09/15 09:19, Ilia Mirkin wrote: > On Fri, Sep 25, 2015 at 3:17 AM, Samuel Iglesias Gonsálvez > <sigles...@igalia.com> wrote: >> On 21/09/15 12:39, Iago Toral wrote: >>> Hi Kristian, >>> >>> On Fri, 2015-09-18 at 16:56 -0700, Kristian Høgsberg wrote: >>>> On Thu, Sep 10, 2015 at 03:35:16PM +0200, Iago Toral Quiroga wrote: >>>>> Hi, >>>>> >>>>> this is the latest version of the ARB_shader_storage_buffer_object >>>>> implementation. A good part of the frontend bits for this are already in >>>>> master, but this adds some more missing pieces, specifically std430 and >>>>> memory qualifiers. Additionally, this provides the i965 implementation. >>>> >>>> I've gone through all patches in the series and I replied to patches >>>> where I had comments. Overall, the series look good and with the >>>> comments addressed, I'm ready to give my Reviewed-by for the series. >>>> I want to take a closer look at the atomics lowering in patches 49+, >>>> but I'm done for today. Base on the quick look-through I did, I don't >>>> expect to find any showstoppers there. >>> >>> great, thanks for reviewing this! We will send new versions of the >>> patches for which you had comments or reply to your comments otherwise. >>> >> >> I have pushed the series to master branch \o/ > > Great news! Can you give a very quick overview of what needs to be > done to enable this on other drivers (specifically, > mesa/state_tracker)? Just some GLSL IR stuff + buffer atoms, or is > there more? Any interactions with counters (at that core level)? >
This is the list of changes we did in i965 driver and would be needed for other drivers: * Implement DriverFlags.NewShaderStorageBuffer and the related code to create the SSBO buffer inside the driver. * Set ARB_shader_storage_buffer_object related constant values to the driver ones (if needed), such as: * ctx->Const.Program[MESA_SHADER_*].MaxShaderStorageBlocks * ctx->Const.MaxCombinedShaderStorageBlocks * ctx->Const.ShaderStorageBufferOffsetAlignment * ctx->Const.MaxShaderStorageBlockSize * ctx->Const.MaxShaderStorageBufferBindings * If using GLSL IR, implement the following intrisics/ops: * ir_unop_get_buffer_size * __intrinsic_store_ssbo * __intrinsic_load_ssbo * __intrinsic_ssbo_atomic_* * If using NIR, implement the following intrinsics: * nir_intrinsic_get_buffer_size * nir_intrinsic_store_ssbo{_indirect} * nir_intrinsic_load_ssbo{_indirect} * nir_intrinsic_ssbo_atomic_* * Enable ARB_shader_storage_buffer_object extension in the driver. AFAIK, there is nothing specific that we had to do with counters. Sam _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev