summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* anv: Set max_hs_threads/max_ds_threadsKristian Høgsberg Kristensen2016-02-241-2/+2
|
* anv: Allocate more push constant space.Kenneth Graunke2016-02-241-5/+11
| | | | | | | | | | | | | | | Previously we allocated 4kB of push constant space for VS, GS, and PS (for a total of 12kB) no matter what. This works, but doesn't fully utilize the space - we have 16kB or 32kB of space. This makes anv use the same method as brw - divide up the space evenly among all active shader stages. This means HS and DS would get space, if those shader stages existed. In the future, we can probably do better by inspecting how many push constants each shader stage uses, and weight things accordingly. But this is strictly better than the old code, and ideally we'd justify a fancier solution with actual performance data.
* anv: Properly size the push constant L3 area.Kenneth Graunke2016-02-241-3/+8
| | | | | We were assuming it was 32kB everywhere, reducing the available URB space. It's actually 16kB on Ivybridge, Baytrail, and Haswell GT1-2.
* anv: Emit 3DSTATE_PUSH_CONSTANT_ALLOC_* via a loop.Kenneth Graunke2016-02-243-9/+15
| | | | Now we're emitting HS and DS packets as well.
* anv: Emit 3DSTATE_URB_* via a loop.Kenneth Graunke2016-02-243-31/+24
| | | | | | | | | | Rather than keeping separate {vs,hs,ds,gs}_start fields, we now store an array indexed by the shader stage (MESA_SHADER_*). The 3DSTATE_URB_* commands are also sequentially numbered. This makes it easy to just emit them in a loop. This simplifies the code a little, and also will make it easier to add more credible HS and DS code later.
* nir/spirv: Allow but warn for a few capabilitiesJason Ekstrand2016-02-231-1/+5
| | | | | | Unfortunately, glslang gives us cull/clip distance and GS streams even if the shader doesn't use it whenever a shader is declared as version 450. This is a glslang bug, but we can easily enough ignore it for now.
* anv/descriptor_set: Use the correct size for the descriptor poolJason Ekstrand2016-02-231-6/+3
| | | | | | | The descriptor sizes array gives the total number of each type of descriptor that will ever be allocated from the pool, not the total amount that may be in any particular set. In our case, this simply means that we have to sum a bunch of things up and there we go.
* nir/spirv: Add more capabilitiesJason Ekstrand2016-02-231-0/+9
|
* anv/meta: Allocate descriptor pools on-the-flyJason Ekstrand2016-02-234-33/+39
| | | | | | | We can't use a global descriptor pool like we were because it's not thread-safe. For now, we'll allocate them on-the-fly and that should work fine. At some point in the future, we could do something where we stack-allocate them or allocate them out of one of the state streams.
* anv/descriptor_set: Set descriptor type for immuatable samplersJason Ekstrand2016-02-221-2/+11
|
* intel/genxml: Update macro documentationJason Ekstrand2016-02-221-2/+2
|
* anv/state: Replace a bunch of ANV_GEN with GEN_GENJason Ekstrand2016-02-221-6/+6
|
* anv/descriptor_set: Stop marking everything as having dynamic offsetsJason Ekstrand2016-02-221-2/+4
|
* anv: Implement descriptor poolsKristian Høgsberg Kristensen2016-02-225-45/+200
| | | | | | | | Descriptor pools are an optimization that lets applications allocate descriptor sets through an externally synchronized object (that is, unlocked). In our case it's also plugging a memory leak, since we didn't track all allocated sets and failed to free them in vkResetDescriptorPool() and vkDestroyDescriptorPool().
* anv/x11: Free swapchain images and memory on destroyKristian Høgsberg Kristensen2016-02-221-1/+5
|
* vulkan: fix out-of-tree buildsMark Janes2016-02-221-0/+1
|
* intel/genxml: Add READMEKristian Høgsberg Kristensen2016-02-221-0/+60
| | | | | | | I've had people ask about the design of the pack functions, for example, why aren't we using bitfields. I wrote up a bit of background on why and how we ended up with the current design and we might as well keep that with the code.
* anv/meta_blit: Handle compressed textures in anv_CmdCopyImageNanley Chery2016-02-221-25/+37
| | | | | | | As with anv_CmdCopyBufferToImage, compressed textures require special handling during copies. Reviewed-by: Kristian Høgsberg Kristensen <[email protected]>
* nir/spirv: Add support for multisampled texturesJason Ekstrand2016-02-211-12/+19
|
* anv: Fix a typo in apply_dynamic_offsetsJason Ekstrand2016-02-201-2/+2
| | | | shader->num_uniforms is in terms of bytes in i965.
* anv: Zero out the WSI array when initializing the instanceJason Ekstrand2016-02-201-0/+2
|
* isl: Stop including mesa/main/imports.hJason Ekstrand2016-02-202-1/+2
| | | | It pulls in all sorts of stuff we don't want.
* genxml: Add mote includes in the generated headersJason Ekstrand2016-02-201-0/+3
|
* anv: Get rid of GENX_FUNCJason Ekstrand2016-02-202-63/+7
| | | | It was a bad idea.
* anv: Switch over to the macros in genxmlJason Ekstrand2016-02-2013-275/+122
|
* intel/genxml: Add a couple of helper headersJason Ekstrand2016-02-202-0/+188
|
* genxml: Stop using unicode in the pack generatorJason Ekstrand2016-02-191-1/+1
| | | | | This causes python problems and problems when people don't have a locale set properly in their shell.
* anv: fix warning about unused width variable.Dave Airlie2016-02-191-2/+1
| | | | We don't use width outside the debug clause here.
* anv/pipeline: Fix a typo in the pipeline layout codeJason Ekstrand2016-02-181-1/+1
|
* anv/allocator: Set is_winsys_bo to false for block pool BOsJason Ekstrand2016-02-181-0/+1
|
* vulkan: fix out-of-tree buildMark Janes2016-02-181-0/+1
| | | | | | We need to be able to find the generated gen*pack.h headers. Acked-by: Jason Ekstrand <[email protected]>
* anv/pipeline: Use nir's num_images for allocating image_paramsJason Ekstrand2016-02-182-4/+6
|
* nir/gather_info: Count textures and imagesJason Ekstrand2016-02-181-0/+17
|
* anv/pipeline: Don't leak the binding mapJason Ekstrand2016-02-183-0/+8
|
* anv/formats: Don't use a compound literal to initialize a const arrayJason Ekstrand2016-02-181-2/+2
| | | | | Doing so makes older versions of GCC rather grumpy. Newere GCC fixes this, but using a compound literal isn't really gaining us anything anyway.
* Move the intel vulkan driver to src/intel/vulkanJason Ekstrand2016-02-1856-6/+5
|
* Move isl to src/intelJason Ekstrand2016-02-1827-6/+4
|
* vulkan: Move XML and generator into src/intel/genxmlJason Ekstrand2016-02-1822-33/+82
|
* anv/meta: Initialize blend state for the right attachmentKristian Høgsberg Kristensen2016-02-181-10/+11
| | | | | We were always initializing only RT 0. We need to initialize the RT we're creating the clear pipeline for.
* anv/meta: Don't use the blit ds layout in resolve codeKristian Høgsberg Kristensen2016-02-181-1/+1
|
* Delete nir_lower_samplers.cppJason Ekstrand2016-02-171-248/+0
| | | | | Somehow, in one of the merges with mesa master, the old file must have been kept when nir_lower_samplers.cpp was moved to nir_lower_samplers.c.
* anv: Gut anv_pipeline_layoutJason Ekstrand2016-02-172-97/+13
| | | | | Almost none of the data in anv_pipeline_layout is used anymore thanks to doing real layout in the pipeline itself.
* anv: Build the real pipeline layout in the pipelineKristian Høgsberg Kristensen2016-02-176-118/+201
| | | | | | | | | This gives us the chance to pack the binding table down to just what the shaders actually need. Some applications use very large descriptor sets and only ever use a handful of entries. Compacted binding tables should be much more efficient in this case. It comes at the down-side of having to re-emit binding tables every time we switch pipelines, but that's considered an acceptable cost.
* nir/spirv: Add some more capabilitiesJason Ekstrand2016-02-171-2/+9
|
* anv/pipeline: Delete out-of-bounds fragment shader outputsJason Ekstrand2016-02-171-0/+13
|
* nir: Add a helper for getting the one function from a shaderJason Ekstrand2016-02-171-0/+9
|
* nir: Add a nir_foreach_variable_safe helperJason Ekstrand2016-02-171-0/+3
|
* i965/nir: Do lower_io late for fragment shadersJason Ekstrand2016-02-173-2/+6
|
* anv/gen7_pipeline: Set WriteDisable = true if we have no color attachmentsJason Ekstrand2016-02-171-5/+5
|
* anv/gen8_pipeline: Default color attachments to WriteDisable = trueJason Ekstrand2016-02-171-0/+7
|