{"push_id":721668629,"size":54,"distinct_size":54,"ref":"refs/heads/wip/siglesias/ARB_shader_storage_buffer_object-v2.5","head":"c6dfab1f964faad4c6af857af886b808094e4e21","before":"9b10cd9cfe55f255869958f095f9aac2be8b3c3b","commits":[{"sha":"93f875e45b18c128f0b8c4ec96ec3aa80a99ea25","author":{"email":"b753b212f30aed827c3eea2e437609dc37310153@igalia.com","name":"Samuel Iglesias Gonsalvez"},"message":"i965: set ARB_shader_storage_buffer_object related constant values\n\nSigned-off-by: Samuel Iglesias Gonsalvez <siglesias@igalia.com>","distinct":true,"url":"https://api.github.com/repos/Igalia/mesa/commits/93f875e45b18c128f0b8c4ec96ec3aa80a99ea25"},{"sha":"f3a3850cc05f6f3cfca919cfc04e6df40805ff2b","author":{"email":"a847aabaac44184372f6b1cd1a59aa254daaeb0b@igalia.com","name":"Iago Toral Quiroga"},"message":"i965: Upload Shader Storage Buffer Object surfaces\n\nSince these are a special kind of UBOs we emit them together reusing the\nsame infrastructure, however, we use a RAW surface so we can reuse\nexisting untyped read/write/atomic messages which include a pixel mask\nheader that we need to set to obtain correct behavior with helper\ninvocations of the fragment shader.","distinct":true,"url":"https://api.github.com/repos/Igalia/mesa/commits/f3a3850cc05f6f3cfca919cfc04e6df40805ff2b"},{"sha":"a69433f89a0dd2622adbc2563d2d7ebfcc4a6c6b","author":{"email":"a847aabaac44184372f6b1cd1a59aa254daaeb0b@igalia.com","name":"Iago Toral Quiroga"},"message":"i965: handle visiting of ir_var_shader_storage variables","distinct":true,"url":"https://api.github.com/repos/Igalia/mesa/commits/a69433f89a0dd2622adbc2563d2d7ebfcc4a6c6b"},{"sha":"06e2aaa2ff4aed91c04802078394d0b026b77b2c","author":{"email":"a847aabaac44184372f6b1cd1a59aa254daaeb0b@igalia.com","name":"Iago Toral Quiroga"},"message":"i965/fs: Do not split buffer variables\n\nBuffer variables are the same as uniforms, only that read/write, so we want\nthe same treatment.","distinct":true,"url":"https://api.github.com/repos/Igalia/mesa/commits/06e2aaa2ff4aed91c04802078394d0b026b77b2c"},{"sha":"88b698137b260d3db5578c57725e92b6dc91be63","author":{"email":"b753b212f30aed827c3eea2e437609dc37310153@igalia.com","name":"Samuel Iglesias Gonsalvez"},"message":"glsl: add support for unsized arrays in shader storage blocks\n\nThey only can be defined in the last position of the shader\nstorage blocks.\n\nWhen an unsized array is used in different shaders, it might be\nconverted in different sized arrays, avoid get a linker error\nin that case.\n\nv2:\n- Rework error condition and error messages (Timothy Arteri)\n\nSigned-off-by: Samuel Iglesias Gonsalvez <siglesias@igalia.com>","distinct":true,"url":"https://api.github.com/repos/Igalia/mesa/commits/88b698137b260d3db5578c57725e92b6dc91be63"},{"sha":"40c52e506337573df10b660938a449ec1daa49cf","author":{"email":"b753b212f30aed827c3eea2e437609dc37310153@igalia.com","name":"Samuel Iglesias Gonsalvez"},"message":"glsl: Add parser/compiler support for unsized array's length()\n\nIt also creates unop and triop expressions to tell the driver to\ncalculate the unsized array length.\n\nIt is needed two expressions to do the calculation:\n\n* The unop expression saves the ir_rvalue* whose length should be\n  calculated.\n* Afterwards, this unop is going to be processed by a lowering pass\nthat will convert it to a triop that includes the block index,\noffset of the variable inside the shader storage block and the array\nstride. All of them are needed for length() calculation following\nGL_ARB_shader_storage_buffer spec:\n\n   array.length() =\n      max((buffer_object_size - offset_of_array) / stride_of_array, 0)\n\nSigned-off-by: Samuel Iglesias Gonsalvez <siglesias@igalia.com>","distinct":true,"url":"https://api.github.com/repos/Igalia/mesa/commits/40c52e506337573df10b660938a449ec1daa49cf"},{"sha":"dd4d50823b8dc442d5b489eacdb44ed28af845b5","author":{"email":"b753b212f30aed827c3eea2e437609dc37310153@igalia.com","name":"Samuel Iglesias Gonsalvez"},"message":"glsl: Lower unsized array's length calculation expression\n\nSigned-off-by: Samuel Iglesias Gonsalvez <siglesias@igalia.com>","distinct":true,"url":"https://api.github.com/repos/Igalia/mesa/commits/dd4d50823b8dc442d5b489eacdb44ed28af845b5"},{"sha":"002a456bfe72aa9d93ec961db640e72b14caa104","author":{"email":"b753b212f30aed827c3eea2e437609dc37310153@igalia.com","name":"Samuel Iglesias Gonsalvez"},"message":"nir: add shader storage buffer's unsized array length calculation\n\nSigned-off-by: Samuel Iglesias Gonsalvez <siglesias@igalia.com>","distinct":true,"url":"https://api.github.com/repos/Igalia/mesa/commits/002a456bfe72aa9d93ec961db640e72b14caa104"},{"sha":"da94607d33d931860d983f5bc00f1fc1408086a5","author":{"email":"b753b212f30aed827c3eea2e437609dc37310153@igalia.com","name":"Samuel Iglesias Gonsalvez"},"message":"i965/vec4: Implement unsized array's length calculation\n\nNotice that Skylake needs to include a header in the sampler message\nso it will need some tweaks to work there.\n\nSigned-off-by: Samuel Iglesias Gonsalvez <siglesias@igalia.com>","distinct":true,"url":"https://api.github.com/repos/Igalia/mesa/commits/da94607d33d931860d983f5bc00f1fc1408086a5"},{"sha":"416121a0ed40162ec69911b4983d0447816dd2a2","author":{"email":"b753b212f30aed827c3eea2e437609dc37310153@igalia.com","name":"Samuel Iglesias Gonsalvez"},"message":"i965/fs: Implement generator code for unsized array's length calculation\n\nSigned-off-by: Samuel Iglesias Gonsalvez <siglesias@igalia.com>","distinct":true,"url":"https://api.github.com/repos/Igalia/mesa/commits/416121a0ed40162ec69911b4983d0447816dd2a2"},{"sha":"32182354a46b9aaa13f6c2723363bb87fde2838c","author":{"email":"b753b212f30aed827c3eea2e437609dc37310153@igalia.com","name":"Samuel Iglesias Gonsalvez"},"message":"i965/fs/nir: implement unsized array's length calculation\n\nSigned-off-by: Samuel Iglesias Gonsalvez <siglesias@igalia.com>","distinct":true,"url":"https://api.github.com/repos/Igalia/mesa/commits/32182354a46b9aaa13f6c2723363bb87fde2838c"},{"sha":"5a6a820a1cdbe4b43aaf50527e4bd84baa56f87b","author":{"email":"b753b212f30aed827c3eea2e437609dc37310153@igalia.com","name":"Samuel Iglesias Gonsalvez"},"message":"i965/wm: emit null buffer surfaces when null buffers are attached\n\nOtherwise we can expect odd things to happen if, for example, we ask\nfor the size of the attached buffer from shader code, since that\nmight query this value from the surface we uploaded and get random\nresults.\n\nSigned-off-by: Samuel Iglesias Gonsalvez <siglesias@igalia.com>","distinct":true,"url":"https://api.github.com/repos/Igalia/mesa/commits/5a6a820a1cdbe4b43aaf50527e4bd84baa56f87b"},{"sha":"e92bcf6951c1d017918c28f371c4fccebb429b5a","author":{"email":"b753b212f30aed827c3eea2e437609dc37310153@igalia.com","name":"Samuel Iglesias Gonsalvez"},"message":"i965/wm: surfaces should have the API buffer size, not the drm buffer size\n\nThe returned drm buffer object has a size multiple of 4096 but that should not\nbe exposed to the API user, which is working with a different size.\n\nSigned-off-by: Samuel Iglesias Gonsalvez <siglesias@igalia.com>","distinct":true,"url":"https://api.github.com/repos/Igalia/mesa/commits/e92bcf6951c1d017918c28f371c4fccebb429b5a"},{"sha":"c4d98e8b13fafe40cb482f7384d2406a575283af","author":{"email":"b753b212f30aed827c3eea2e437609dc37310153@igalia.com","name":"Samuel Iglesias Gonsalvez"},"message":"glsl: Add parser/compiler support for std430 interface packing qualifier\n\nThis commit also adds functions to calculate std430 base alignment and sizes\n\nSigned-off-by: Samuel Iglesias Gonsalvez <siglesias@igalia.com>","distinct":true,"url":"https://api.github.com/repos/Igalia/mesa/commits/c4d98e8b13fafe40cb482f7384d2406a575283af"},{"sha":"674632765b0d83adb11f755aec1dad3db790766e","author":{"email":"b753b212f30aed827c3eea2e437609dc37310153@igalia.com","name":"Samuel Iglesias Gonsalvez"},"message":"glsl: propagate interface packing information to arrays of scalars, vectors.\n\nNow std140 is not the only interface packing qualifier that can be used.\n\nSigned-off-by: Samuel Iglesias Gonsalvez <siglesias@igalia.com>","distinct":true,"url":"https://api.github.com/repos/Igalia/mesa/commits/674632765b0d83adb11f755aec1dad3db790766e"},{"sha":"ae6cda0f80643c9e78fbf10bdb5db29685f1dd57","author":{"email":"b753b212f30aed827c3eea2e437609dc37310153@igalia.com","name":"Samuel Iglesias Gonsalvez"},"message":"glsl: propagate std430 packing qualifier to struct's members and array of structs\n\nWhen propagating std430 packing qualifier to the struct's members, new\nglsl_types need to be created because the existing ones are const.\nThe new glsl_types are meant to replace the already defined one\ntaking into account that the field names cannot have different names\nas it is the same struct definition but with different packing.\n\nThis patch is designed to keep previous default behavior (use std140 as\ninterface packing qualifier) when there is no std430 interface packing.\n\nIn order to facilitate the task, the glsl_type constructors for struct\nand for interfaces are unified, as they had the same code but different\nbase_type.\n\nSigned-off-by: Samuel Iglesias Gonsalvez <siglesias@igalia.com>","distinct":true,"url":"https://api.github.com/repos/Igalia/mesa/commits/ae6cda0f80643c9e78fbf10bdb5db29685f1dd57"},{"sha":"fc7e014a91aedd325ee2a547570f120d3b768984","author":{"email":"b753b212f30aed827c3eea2e437609dc37310153@igalia.com","name":"Samuel Iglesias Gonsalvez"},"message":"glsl: add std430 interface packing support to ssbo writes and unsized array length\n\nSigned-off-by: Samuel Iglesias Gonsalvez <siglesias@igalia.com>","distinct":true,"url":"https://api.github.com/repos/Igalia/mesa/commits/fc7e014a91aedd325ee2a547570f120d3b768984"},{"sha":"e6e130e3320f24d5e7e93963f702e28e779c6549","author":{"email":"b753b212f30aed827c3eea2e437609dc37310153@igalia.com","name":"Samuel Iglesias Gonsalvez"},"message":"glsl: a shader storage buffer must be smaller than the maximum size allowed\n\nOtherwise, generate a link time error as per the\nARB_shader_storage_buffer_object spec.\n\nSigned-off-by: Samuel Iglesias Gonsalvez <siglesias@igalia.com>","distinct":true,"url":"https://api.github.com/repos/Igalia/mesa/commits/e6e130e3320f24d5e7e93963f702e28e779c6549"},{"sha":"c0252bdf0dcc3bd1e0898d1f5dc9ef63cdafd0aa","author":{"email":"b753b212f30aed827c3eea2e437609dc37310153@igalia.com","name":"Samuel Iglesias Gonsalvez"},"message":"glsl: number of active shader storage blocks must be within allowed limits\n\nNotice that we should differentiate betweeb shader storage blocks and\nuniform blocks, since they have different limits.\n\nSigned-off-by: Samuel Iglesias Gonsalvez <siglesias@igalia.com>","distinct":true,"url":"https://api.github.com/repos/Igalia/mesa/commits/c0252bdf0dcc3bd1e0898d1f5dc9ef63cdafd0aa"},{"sha":"61a33c8b66a278e0b56029aaaa445e5db50e8707","author":{"email":"b753b212f30aed827c3eea2e437609dc37310153@igalia.com","name":"Samuel Iglesias Gonsalvez"},"message":"glsl: ignore buffer variables when counting uniform components\n\nSigned-off-by: Samuel Iglesias Gonsalvez <siglesias@igalia.com>","distinct":true,"url":"https://api.github.com/repos/Igalia/mesa/commits/61a33c8b66a278e0b56029aaaa445e5db50e8707"}]}