)]}' { "commit": "0bcb71f9c7372af4a5a56c02cf23775606f789a6", "tree": "eda5bd4d8b22eab3aa3136d5703ad2aef39ad25e", "parents": [ "673a7fe5c3ff6686c98951cafb24a93ca5bd1303" ], "author": { "name": "Alexis Hetu", "email": "sugoi@google.com", "time": "Thu Jan 14 12:05:12 2021 -0500" }, "committer": { "name": "swiftshader-scoped@luci-project-accounts.iam.gserviceaccount.com", "email": "swiftshader-scoped@luci-project-accounts.iam.gserviceaccount.com", "time": "Fri Feb 12 16:46:11 2021 +0000" }, "message": "Implement GLSLstd450Interpolate* functions\n\nThis cl adds an implementation for:\n- GLSLstd450InterpolateAtCentroid\n- GLSLstd450InterpolateAtSample\n- GLSLstd450InterpolateAtOffset\n\nThese functions essentially replicate the behavior of\nregular interpolants in the fragment shader processing.\n\nA specific extra difficulty encountered here is detecting\nwhich kind of pointer offset we are dealing with. Pointer\noffsets might be caused by [] operators being used on a\nvector or on an array (possibly an array of vectors). This\ndistinction is important as it impacts what interpolant\noffsets point to. Note that there\u0027s missing coverage in\ndEQP-VK for interpolant arrays and this was caught with\nSwANGLE tests (a dEQP-VK issue will be logged shortly).\n\nAnother issue was dealing with dynamic interpolant offsets,\nwhich was solved by looping over all of them and combining\nall plane equations into one before performing the\ninterpolation.\n\nBug: b/171415086\nChange-Id: Id7c4c931918ba172d00da84655051445b110d3a9\nReviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/51737\nPresubmit-Ready: Alexis Hétu \u003csugoi@google.com\u003e\nKokoro-Result: kokoro \u003cnoreply+kokoro@google.com\u003e\nTested-by: Alexis Hétu \u003csugoi@google.com\u003e\nCommit-Queue: Alexis Hétu \u003csugoi@google.com\u003e\nReviewed-by: Nicolas Capens \u003cnicolascapens@google.com\u003e\n", "tree_diff": [ { "type": "modify", "old_id": "bdc3da7440e64e800e7f5912b61529a4824c036b", "old_mode": 33188, "old_path": "src/Pipeline/PixelProgram.cpp", "new_id": "c42af5f68a57470dfdde04723decb564f065cc24", "new_mode": 33188, "new_path": "src/Pipeline/PixelProgram.cpp" }, { "type": "modify", "old_id": "ce3b0cb72ad1af2a283d5fcbc24fb41aaf0867d3", "old_mode": 33188, "old_path": "src/Pipeline/SpirvShader.cpp", "new_id": "66f0e21d2ece13713c8e32ad942406cabb263833", "new_mode": 33188, "new_path": "src/Pipeline/SpirvShader.cpp" }, { "type": "modify", "old_id": "84db5fde117049eff60e7dc5930be624517b03a0", "old_mode": 33188, "old_path": "src/Pipeline/SpirvShader.hpp", "new_id": "7af156a746a7c7b9c6c0d476d75b984578c7140d", "new_mode": 33188, "new_path": "src/Pipeline/SpirvShader.hpp" }, { "type": "modify", "old_id": "e43a298e14d6c7e9412516eddd9b2e768ca1d3dd", "old_mode": 33188, "old_path": "src/Pipeline/SpirvShaderGLSLstd450.cpp", "new_id": "7455029f6bc21ff5c9bcc4499f10a7e42b4d7b4a", "new_mode": 33188, "new_path": "src/Pipeline/SpirvShaderGLSLstd450.cpp" } ] }