{"ref":"refs/heads/xf-queries","push_id":54762600,"commits":[{"sha":"7d2ff0bf0b7422c34676c2f47dbe754f57edb51e","author":{"email":"de21b9f22e6dd0bdf7890875d6e07ef4967c44ce@gmail.com","name":"Paul Berry"},"url":"https://api.github.com/repos/stereotype441/mesa/commits/7d2ff0bf0b7422c34676c2f47dbe754f57edb51e","message":"i965 gen6: Implement rasterizer discard.\n\nThis patch enables rasterizer discard functionality (a part of\ntransform feedback) in Gen6, by generating an alternate GS program\nwhen rasterizer discard is active.  Instead of forwarding vertices\ndown the pipeline, the alternate GS program uses a URB Write message\nto deallocate the URB entry that was allocated by FF sync and\nterminate the thread.\n\nNote: parts of the Sandy Bridge PRM seem to imply that we could do\nthis more efficiently, by clearing the GEN6_GS_RENDERING_ENABLE bit,\nand not allocating a URB entry at all.  However, it's not clear how we\nare supposed to terminate the thread if we do that.  Volume 2 part 1,\nsection 4.5.4, says \"GS threads must terminate by sending a URB_WRITE\nmessage with the EOT and Complete bits set.\", and my experiments so\nfar confirm that.\n\nReviewed-by: Kenneth Graunke <kenneth@whitecape.org>"},{"sha":"291ae4e6396872679fef72ed4fdd46fb7f945c3d","author":{"email":"de21b9f22e6dd0bdf7890875d6e07ef4967c44ce@gmail.com","name":"Paul Berry"},"url":"https://api.github.com/repos/stereotype441/mesa/commits/291ae4e6396872679fef72ed4fdd46fb7f945c3d","message":"mesa: Remove unnecessary FLUSH_VERTICES in bind_buffer_range\n\nIt isn't necessary to call FLUSH_VERTICES from bind_buffer_range,\nbecause transform feedback buffers are not allowed to be changed when\ntransform feedback is active.\n\nThanks to Marek Olšák for pointing out this bug.\n\nReviewed-by: Marek Olšák <maraeo@gmail.com>"},{"sha":"dc7b6d7d6defdfe4f79fb682d3378a3bed8b5db9","author":{"email":"de21b9f22e6dd0bdf7890875d6e07ef4967c44ce@gmail.com","name":"Paul Berry"},"url":"https://api.github.com/repos/stereotype441/mesa/commits/dc7b6d7d6defdfe4f79fb682d3378a3bed8b5db9","message":"mesa: Add count_tessellated_primitives() function.\n\nThis function computes the number of primitives that will be generated\nwhen the given drawing operation is performed.  It accounts for the\ntessellation that is performed on line strips, line loops, triangle\nstrips, triangle fans, quads, quad strips, and polygons, so it is\nsuitable for implementing the primitive counters needed by transform\nfeedback.\n\nReviewed-by: Kenneth Graunke <kenneth@whitecape.org>"},{"sha":"163611d7b21670de6074c09d37bdf93bad494036","author":{"email":"de21b9f22e6dd0bdf7890875d6e07ef4967c44ce@gmail.com","name":"Paul Berry"},"url":"https://api.github.com/repos/stereotype441/mesa/commits/163611d7b21670de6074c09d37bdf93bad494036","message":"mesa: Add a function to query whether a meta-op is in progress.\n\nThis is needed by i965 to ensure that transform feedback counters are\nnot incremented during meta-ops.\n\nReviewed-by: Kenneth Graunke <kenneth@whitecape.org>"},{"sha":"f8328c998b4d68c62ba939165390c2c22c5b5740","author":{"email":"de21b9f22e6dd0bdf7890875d6e07ef4967c44ce@gmail.com","name":"Paul Berry"},"url":"https://api.github.com/repos/stereotype441/mesa/commits/f8328c998b4d68c62ba939165390c2c22c5b5740","message":"i965 gen6: Ensure correct transform feedback indices on new batch.\n\nWe don't currently have kernel support for saving GPU registers on a\ncontext switch, so if multiple processes are performing transform\nfeedback at the same time, their SVBI registers will interfere with\neach other.  To avoid this situation, we keep a software shadow of the\nstate of the SVBI 0 register (which is the only register we use), and\nre-upload it on every new batch.\n\nThe function that updates the shadow state of SVBI 0 is called\nbrw_update_primitive_count, since it will also be used to update the\ncounters for the PRIMITIVES_GENERATED and\nTRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN queries.\n\nReviewed-by: Kenneth Graunke <kenneth@whitecape.org>"},{"sha":"c5e17a84983d7799fd842a62daaece3d97a670be","author":{"email":"de21b9f22e6dd0bdf7890875d6e07ef4967c44ce@gmail.com","name":"Paul Berry"},"url":"https://api.github.com/repos/stereotype441/mesa/commits/c5e17a84983d7799fd842a62daaece3d97a670be","message":"i965: Convert if/else to switch statements in brw_queryobj.c\n\nPreviously, i965 only supported two query types: GL_TIME_ELAPSED_EXT\nand GL_SAMPLES_PASSED_ARB, and it distinguished between the two using\nif/else statements that compared query->Base.Target to\nGL_TIME_ELAPSED_EXT.\n\nThis patch changes the if/else statements to switch statements so that\nwe can add more query types without having to have a chain of\nelse-ifs.\n\nReviewed-by: Kenneth Graunke <kenneth@whitecape.org>"},{"sha":"c59393b7069f59ca2a13bfb6500f2a5360c38031","author":{"email":"de21b9f22e6dd0bdf7890875d6e07ef4967c44ce@gmail.com","name":"Paul Berry"},"url":"https://api.github.com/repos/stereotype441/mesa/commits/c59393b7069f59ca2a13bfb6500f2a5360c38031","message":"i965 gen6: Implement transform feedback queries.\n\nThis patch adds software-based PRIMITIVES_GENERATED and\nTRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN queries that work by keeping\ntrack of the number of primitives that are sent down the pipeline, and\nadjusting as necessary to account for the way each primitive type is\ntessellated.\n\nIn the long run we'll want to replace this with a hardware-based\nimplementation, because the software approach won't work with geometry\nshaders or primitive restart.  However, at the moment, we don't have\nthe necessary kernel support to implement a hardware-based query (we\nwould need the kernel to save GPU registers when context switching, so\nthat drawing performed by another process doesn't get counted).\n\nFixes Piglit tests EXT_transform_feedback/query-primitives_generated-*\nand EXT_transform_feedback/query-primitives-written-*.\n\nReviewed-by: Kenneth Graunke <kenneth@whitecape.org>"},{"sha":"3a2e71874b630fe5d7ec36bbbd69a6dacab7cd15","author":{"email":"de21b9f22e6dd0bdf7890875d6e07ef4967c44ce@gmail.com","name":"Paul Berry"},"url":"https://api.github.com/repos/stereotype441/mesa/commits/3a2e71874b630fe5d7ec36bbbd69a6dacab7cd15","message":"i965 gen6: Turn on transform feedback extension unconditionally.\n\nPreviously, we only enabled transform feedback when\nMESA_GL_VERSION_OVERRIDE was 3.0 or greater, since transform feedback\nsupport was not completely finished, so it didn't make sense to\nadvertise support for it unless absolutely necessary.\n\nNow that transform feedback is fully implemented on gen6, we can\nenable this extension unconditionally.\n\nReviewed-by: Kenneth Graunke <kenneth@whitecape.org>"}],"head":"3a2e71874b630fe5d7ec36bbbd69a6dacab7cd15","size":8}