summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* nir: remove sampler_set from nir_tex_instrJason Ekstrand2015-11-031-3/+0
| | | | | Now that descriptor sets are handled in a lowering pass, this is no longer needed.
* anv: Drop stale comment in anv_cmd_buffer_emit_binding_table()Chad Versace2015-11-031-11/+5
| | | | | | | | | | | When emitting the binding table for the fragment shader stage, we no longer "walk all of the attachments, [inserting only] the color attachments into the binding table". Instead, we iterate only over the subpass's color attachments, which is the minimal possible iteration. While killing the comment, also rename the variable 'attachments' to 'color_count', as it's no longer a count of all framebuffer attachments but only the subpass's color attachment count.
* anv: Report 0 physical devices when not on Broadwell or Ivy BridgeJason Ekstrand2015-11-022-7/+21
| | | | | | Right now, Broadweel and Ivy Bridge are the only supported platforms. Hopefully, this reduces the chances that someone will try the driver on unsupported hardware and be confused that it doesn't work.
* anv: Add better push constant supportJason Ekstrand2015-10-294-13/+113
| | | | | | | What we had before was kind of a hack where we made certain untrue assumptions about the incoming data. This new support, while it still doesn't support indirects properly (that will come), at least pulls the offsets and strides from SPIR-V like it's supposed to.
* nir/spirv: Add support for push constantsJason Ekstrand2015-10-291-7/+104
|
* nir/intrinsics: Add a load_push_constant intrinsicJason Ekstrand2015-10-291-0/+1
|
* nir/spirv: Rework the way we handle interface typesJason Ekstrand2015-10-291-20/+18
|
* anv/pass: Remove redundant assertChad Versace2015-10-291-1/+0
| | | | Trivial fix.
* anv/pass: Move VkRenderPass code to new fileChad Versace2015-10-293-137/+162
| | | | | Move it from anv_device.c to new file anv_pass.c. Because it will soon grow bigger.
* anv: Fix parsing of load ops in VkAttachmentDescriptionChad Versace2015-10-292-12/+23
| | | | | | | | | | | | My original understanding of VkAttachmentDescription::loadOp, stencilLoadOp was incorrect. Below are all possible combinations: VkFormat | loadOp=clear stencilLoadOp=clear ---------------+--------------------------- color | clear-color ignored depth-only | clear-depth ignored stencil-only | ignored clear-stencil depth-stencil | clear-depth clear-stencil
* anv: Update the READMEJason Ekstrand2015-10-281-2/+3
| | | | | Adds a note that we support SPIR-V revision 32. Also, we now support geometry shaders.
* Revert "nir/intrinsic: Allow up to four indices"Jason Ekstrand2015-10-271-1/+1
| | | | | | This reverts commit 5eccd0b4b947d806c0725899a827e622e605f2cc. This was only needed for the store_ssbo_vk_indirect intrinsic
* Revert "nir/intrinsics: Add new Vulkan load/store intrinsics"Jason Ekstrand2015-10-271-7/+2
| | | | | | | This reverts commit 24bcc89c8fa326b838e9fea002065a40d4d04314. Now that we have the new vulkan_resource_index intrinsic, these variants of the classic UBO/SSBO instrinsics aren't needed.
* anv/nir: Work with the new vulkan_resource_index intrinsicJason Ekstrand2015-10-272-72/+39
|
* nir/spirv: Use the new vulkan_resource_index intrinsicJason Ekstrand2015-10-271-11/+34
| | | | This is instead of using the _vk versions of UBO/SSBO load/store intrinsics
* nir: Add a vulkan_resource_index intrinsicJason Ekstrand2015-10-271-0/+19
|
* Add a todo comment about intput_slots_valid in the FS shader keyJason Ekstrand2015-10-261-0/+2
|
* anv/gen8_pipeline: Emit a real 3DSTATE_SBE_SWIZ packetJason Ekstrand2015-10-261-1/+38
|
* anv/pipeline: Bump the size of the pipeline batch to accomodate GSJason Ekstrand2015-10-231-1/+1
| | | | | The 1k batch size wasn't big enough for a full pipeline setup including geometry shaders. Some day we should make it dynamic.
* anv/gen8_pipeline: Various 3DSTATE_GS fixesJason Ekstrand2015-10-231-2/+7
|
* anv/pipeline: Use separate-shaderJason Ekstrand2015-10-231-0/+3
|
* anv/pipeline: Pull separate_shader from NIR for vue map setupJason Ekstrand2015-10-231-2/+2
|
* nir/spirv: Add support for builtins in arraysJason Ekstrand2015-10-221-2/+31
|
* nir/spirv: Make the builtins array distinguish between in and outJason Ekstrand2015-10-222-4/+17
|
* nir/spirv: Make vtn_get_builtin_location smarterJason Ekstrand2015-10-221-20/+48
| | | | | | | | Instead of just stomping on the mode, it now validates asserts that the previously set mode is correct and only changes it if needed. We need to do this because, in geometry shaders, there are some builtins that can be either an input or an output depending on context. We can get that information from the SPIR-V source but we can't throw it away.
* nir/spirv: Make get_builtin_variable take a nir_variable_modeJason Ekstrand2015-10-221-2/+4
| | | | | We'll want this in a moment for validation but, for now, it just gets stompped by get_builtin_variable.
* nir/spirv: Remove the vtn_type argument from _vtn_variable_load/storeJason Ekstrand2015-10-221-18/+10
| | | | | Now that builtins are handled in deref chains, we don't really need this anymore.
* nir/validate: Add better validation of load/store typesJason Ekstrand2015-10-221-2/+14
|
* anv/gen8: Set the correct maximum number of GS threadsJason Ekstrand2015-10-211-1/+1
| | | | This equation was pulled from mesa gen8_gs_state.c
* anv/pipeline: set the gs_vertex_count in compile_gsJason Ekstrand2015-10-211-0/+1
| | | | This was missed in the initial enabling commit.
* anv/pipeline: Make the has_push_constants computation more accurateJason Ekstrand2015-10-211-1/+5
| | | | | The computation used to only look for uniforms that weren't samplers. Now it also filters out arrays of samplers.
* nir/spirv: Add defaults for GS input/output primitive typesJason Ekstrand2015-10-211-0/+6
| | | | | | | These are supposed to be specified in the SPIR-V source as SpvExecutionMode enums but glslang isn't giving them to us. A bug has been filed: https://github.com/KhronosGroup/glslang/issues/84
* i965/vec4: Handle returns at the end of functionsJason Ekstrand2015-10-211-1/+7
|
* i965: Move get_hw_prim_for_gl_prim to brw_util.cJason Ekstrand2015-10-212-29/+28
|
* nir/spirv: Add capabilities and decorations for basic geometry shadersJason Ekstrand2015-10-211-6/+15
|
* anv/pipeline: Add back basic geometry shader supportJason Ekstrand2015-10-211-0/+65
| | | | | | Now that we've done the refactoring upstream, it's much easier to to get hooked up. We haven't tested things well enough to know that we're setting up the GPU state correctly for them yet but at least we can compile them now.
* nir/spirv: Add support for more CS system valuesJason Ekstrand2015-10-211-6/+12
|
* nir/spirv: Add support for various barrier type instructionsJason Ekstrand2015-10-211-0/+40
|
* Fix a couple of dereferencesJason Ekstrand2015-10-211-2/+2
|
* spirv/nir: Add more stage assertsJason Ekstrand2015-10-211-0/+5
|
* nir/spirv: Add support for GS metadataJason Ekstrand2015-10-211-3/+66
|
* nir/gather_info: Add more info for geometry shadersJason Ekstrand2015-10-211-0/+7
|
* Merge remote-tracking branch 'mesa-public/master' into vulkanJason Ekstrand2015-10-21102-1233/+2594
|\
| * i965: Implement gl_InvocationID.Kenneth Graunke2015-10-211-0/+13
| | | | | | | | | | | | | | It's stored in bits 31:27 of g1 (along with the URB handles). Signed-off-by: Kenneth Graunke <[email protected]> Reviewed-by: Kristian Høgsberg <[email protected]>
| * i965: Implement nir_intrinsic_load_primitive.Kenneth Graunke2015-10-211-0/+8
| | | | | | | | | | Signed-off-by: Kenneth Graunke <[email protected]> Reviewed-by: Kristian Høgsberg <[email protected]>
| * i965: Add a fs_visitor constructor that takes a brw_gs_compile.Kenneth Graunke2015-10-212-3/+39
| | | | | | | | | | | | | | | | | | | | | | Unlike the vs/wm structs, brw_gs_compile is actually useful: it contains the input VUE map and information about the control data headers. Passing this in allows us to share that code in brw_gs.c, and calculate them before deciding on vec4 vs. scalar mode, as it's independent of that choice. Signed-off-by: Kenneth Graunke <[email protected]> Reviewed-by: Kristian Høgsberg <[email protected]>
| * i965: Add a brw->scalar_gs flag controlled by INTEL_SCALAR_GS=1.Kenneth Graunke2015-10-213-1/+8
| | | | | | | | | | | | | | | | | | | | | | This patch introduces a brw->scalar_gs flag, similar to brw->scalar_vs, which controls whether or not to use SIMD8 geometry shaders. For now, we control it via a new environment variable, INTEL_SCALAR_GS. This provides a convenient way to try it out. Signed-off-by: Kenneth Graunke <[email protected]> Reviewed-by: Kristian Høgsberg <[email protected]>
| * i965: Make emit_urb_writes() reserve space for GS header information.Kenneth Graunke2015-10-211-2/+16
| | | | | | | | | | | | | | | | | | | | | | Geometry shaders have additional header data at the beginning of their output URB entries. Shaders that use EndPrimitive() or multiple streams have a control data header; shaders with a dynamic vertex count have an additional vec4 slot to hold the 32-bit vertex count (and 96 bits of padding). Signed-off-by: Kenneth Graunke <[email protected]> Reviewed-by: Kristian Høgsberg <[email protected]>
| * i965: Make emit_urb_writes() only set EOT for the VS.Kenneth Graunke2015-10-211-1/+1
| | | | | | | | | | | | | | | | | | The GS will emit a bunch of vertices, and we don't want to do an EOT prematurely. We'll emit GS_OPCODE_THREAD_END when we want to terminate the thread. Signed-off-by: Kenneth Graunke <[email protected]> Reviewed-by: Kristian Høgsberg <[email protected]>
| * i965: Make fs_visitor::emit_urb_writes reusable for scalar GS.Kenneth Graunke2015-10-211-7/+7
| | | | | | | | | | | | | | | | GS doesn't have ClampVertexColor, and we don't want to go through VS structures. Signed-off-by: Kenneth Graunke <[email protected]> Reviewed-by: Kristian Høgsberg <[email protected]>