summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* anv: Emit null render targetsJason Ekstrand2016-03-053-13/+82
| | | | v2 (Francisco Jerez): Add the state_offset to the surface state offset
* anv/pipeline: Handle null wm_prog_data in 3DSTATE_CLIPJason Ekstrand2016-03-051-2/+2
|
* anv: Fix rebase errorKristian Høgsberg Kristensen2016-03-051-2/+2
|
* anv: Turn pipeline cache on by defaultKristian Høgsberg Kristensen2016-03-051-2/+3
| | | | | Move the environment variable check to cache creation time so we block both lookups and uploads if it's turned off.
* anv: Check if shader if present before uploading to cacheKristian Høgsberg Kristensen2016-03-051-7/+38
| | | | | | | Between the initial check the returns NO_KERNEL and compiling the shader, other threads may have added the shader to the cache. Before uploading the kernel, check again (under the mutex) that the compiled shader still isn't present.
* anv: Always use point size from the shaderKristian Høgsberg Kristensen2016-03-054-9/+2
| | | | | | | | | | | | There is no API for setting the point size and the shader is always required to set it. Section 24.4: "If the value written to PointSize is less than or equal to zero, or if no value was written to PointSize, results are undefined." As such, we can just always program PointWidthSource to Vertex. This simplifies anv_pipeline a bit and avoids trouble when we enable the pipeline cache and don't have writes_point_size in the prog_data.
* anv: Also cache the struct anv_pipeline_binding mapsKristian Høgsberg Kristensen2016-03-055-87/+158
| | | | | This is state the we generate when compiling the shaders and we need it for mapping resources from descriptor sets to binding table indices.
* anv: Don't re-upload shaders when mergingKristian Høgsberg Kristensen2016-03-051-10/+4
| | | | | | | Using anv_pipeline_cache_upload_kernel() will re-upload the kernel and prog_data when we merge caches. Since the kernel and prog_data is already in the program_stream, use anv_pipeline_cache_add_entry() instead to only add the entry to the hash table.
* anv: Add anv_pipeline_cache_add_entry()Kristian Høgsberg Kristensen2016-03-051-8/+15
| | | | This function will grow the cache to make room and then add the entry.
* anv: Rename anv_pipeline_cache_add_entry() to 'set'Kristian Høgsberg Kristensen2016-03-051-3/+3
| | | | | | This function is a helper that unconditionally sets a hash table entry and expects the cache to have enough room. Calling it 'add_entry' suggests it will grow the cache as needed.
* anv: Simplify pipeline cache control flow a bitKristian Høgsberg Kristensen2016-03-051-35/+27
| | | | | No functional change, but the control flow around searching the cache and falling back to compiling is a bit simpler.
* anv: Store prog data in pipeline cache streamKristian Høgsberg Kristensen2016-03-0511-123/+171
| | | | | We have to keep it there for the cache to work, so let's not have an extra copy in struct anv_pipeline too.
* anv: Rename 'table' to 'hash_table' in anv_pipeline_cacheKristian Høgsberg Kristensen2016-03-052-17/+17
| | | | A little less ambiguous.
* anv: Serialize as much pipeline cache as we canKristian Høgsberg Kristensen2016-03-051-6/+17
| | | | | | We can serialize as much as the application asks for and just stop once we run out of memory. This lets applications use a fixed amount of space for caching and still get some benefit.
* anv: Use 1.0 pipeline cache headerKristian Høgsberg Kristensen2016-03-051-11/+25
| | | | The final version of the pipeline cache header adds a few more fields.
* anv: Fix shader key hashingKristian Høgsberg Kristensen2016-03-051-1/+1
| | | | | This was copied from inline code to a helper and wasn't updated to hash a pointer instead.
* anv: Remove excess whitespaceKristian Høgsberg Kristensen2016-03-051-12/+12
|
* anv: Remove left-over bits of sparse-descriptor codeKristian Høgsberg Kristensen2016-03-051-4/+0
|
* anv/pipeline: Implement the depth compare EQUAL workaround on gen8+Jason Ekstrand2016-03-051-0/+8
|
* anv: Don't allow D16_UNORM to be combined with stencilJason Ekstrand2016-03-052-3/+4
| | | | | Among other things, this can cause the depth or stencil test to spurriously fail when the fragment shader uses discard.
* anv/pipeline: Calculate the correct max_source_attr for 3DSTATE_SBEJason Ekstrand2016-03-051-4/+6
|
* anv/hsw: Move query code to genX file for HaswellJordan Justen2016-03-052-240/+244
| | | | | | | | This fixes many CTS cases, but will require an update to the kernel command parser register whitelist. (The CS GPRs and TIMESTAMP registers need to be whitelisted.) Signed-off-by: Jordan Justen <[email protected]>
* anv: Implement VK_REMAINING_{MIP_LEVELS,ARRAY_LAYERS}Nanley Chery2016-03-043-8/+25
| | | | | | | v2: Subtract the baseMipLevel and baseArrayLayer (Jason) Signed-off-by: Nanley Chery <[email protected]> Reviewed-by: Jason Ekstrand <[email protected]>
* anv/meta_clear: Set the right number of dynamic statesJason Ekstrand2016-03-041-1/+1
|
* anv/pipeline: Fix depthBiasEnable on gen7Jason Ekstrand2016-03-041-3/+3
| | | | The first time I tried to fix this, I set the wrong fields.
* anv/cmd_buffer: Reset the state streams when resetting the command bufferJason Ekstrand2016-03-041-0/+8
|
* anv/cmd_buffer: Include Haswell in set_subpassJason Ekstrand2016-03-041-1/+5
|
* isl: Fix RenderTargetViewExtent for mipmapped 3D surfacesNanley Chery2016-03-041-1/+2
| | | | | | | Match the comment stated above the assignment. Signed-off-by: Nanley Chery <[email protected]> Reviewed-by: Jason Ekstrand <[email protected]>
* isl: Get rid of isl_surf_fill_state_info::level0_extent_pxNanley Chery2016-03-043-43/+7
| | | | | | | This field is no longer needed. Signed-off-by: Nanley Chery <[email protected]> Reviewed-by: Jason Ekstrand <[email protected]>
* anv/cmd_buffer: Let the pipeline set StencilBufferWriteEnable on gen9Jason Ekstrand2016-03-041-3/+0
|
* anv/cmd_buffer: Mask stencil reference valuesJason Ekstrand2016-03-042-6/+6
|
* anv/clear: Pull the stencil write mask from the pipelineJason Ekstrand2016-03-041-2/+3
| | | | | The stencil write mask wasn't getting set at all so we were using whatever write mask happend to be left over by the application.
* anv/pipeline: Set StencilBufferWriteEnable from the pipelineJason Ekstrand2016-03-044-6/+2
| | | | | The hardware docs say that StencilBufferWriteEnable should only be set if StencilTestEnable is set. It seems reasonable to set them together.
* anv/pipeline: More competent gen8 clippingJason Ekstrand2016-03-041-0/+14
|
* anv/pipeline: Use the right provoking vertex for triangle fansJason Ekstrand2016-03-042-3/+3
|
* anv/pipeline: Respect pRasterizationState->depthBiasEnableJason Ekstrand2016-03-044-12/+6
|
* anv: Fix backwards shadow comparisonsKenneth Graunke2016-03-041-10/+21
| | | | | | | | | | sample_c is backwards from what GL and Vulkan expect. See intel_state.c in i965. v2: Drop unused vk_to_gen_compare_op. Reviewed-by: Jason Ekstrand <[email protected]>
* hack to make dota 2 menus workKenneth Graunke2016-03-031-2/+2
|
* isl/surface_state: Set L2 bypass disable for certain BC* formatsJason Ekstrand2016-03-031-0/+22
|
* anv: Compile shader stages in pipeline order.Kenneth Graunke2016-03-031-22/+26
| | | | | | Instead of the arbitrary order modules might be specified in. Acked-by: Jason Ekstrand <[email protected]>
* anv/meta: Delete unused functionsNanley Chery2016-03-031-93/+0
| | | | | Signed-off-by: Nanley Chery <[email protected]> Reviewed-by: Jason Ekstrand <[email protected]>
* anv/meta: Use blitter API for state-handling in Buffer Update/CopyNanley Chery2016-03-031-4/+4
| | | | | Signed-off-by: Nanley Chery <[email protected]> Reviewed-by: Jason Ekstrand <[email protected]>
* anv/meta: Use blitter API in do_buffer_copy()Nanley Chery2016-03-031-73/+21
| | | | | | | v2: Keep pitch in units of bytes (Jason) Signed-off-by: Nanley Chery <[email protected]> Reviewed-by: Jason Ekstrand <[email protected]>
* anv/meta: Use blitter API in anv_CmdCopyImage()Nanley Chery2016-03-031-71/+42
| | | | | Signed-off-by: Nanley Chery <[email protected]> Reviewed-by: Jason Ekstrand <[email protected]>
* anv/meta: Use blitter API for copies between Images and BuffersNanley Chery2016-03-031-208/+6
| | | | | Signed-off-by: Nanley Chery <[email protected]> Reviewed-by: Jason Ekstrand <[email protected]>
* anv/meta: Add function which copies between Buffers and ImagesNanley Chery2016-03-031-0/+92
| | | | | | | v2: Keep pitch in units of bytes (Jason) Signed-off-by: Nanley Chery <[email protected]> Reviewed-by: Jason Ekstrand <[email protected]>
* anv/meta: Add function to create anv_meta_blit2d_surf from anv_imageNanley Chery2016-03-031-0/+13
| | | | | | | v2: Keep pitch in units of bytes (Jason) Signed-off-by: Nanley Chery <[email protected]> Reviewed-by: Jason Ekstrand <[email protected]>
* anv/meta: Implement the blitter API functionsNanley Chery2016-03-032-3/+145
| | | | | | | | | | | | | | | | | Most of the code in anv_meta_blit2d() is borrowed from do_buffer_copy(). Create an image and image view for each rectangle. Note: For tiled RGB images, ISL will align the image's row_pitch up to the nearest tile width. v2 (Jason): Keep pitch in units of bytes Make src_format and dst_format variables s/dest/dst/ in every usage v3: Fix dst_image width Signed-off-by: Nanley Chery <[email protected]> Reviewed-by: Jason Ekstrand <[email protected]>
* anv/meta: Modify blitter API fieldsNanley Chery2016-03-031-18/+5
| | | | | | | | | | Some fields are unnecessary. The variables "pitch" and "bs" are used for consistency with ISL. v2: Keep pitch in units of bytes (Jason) Signed-off-by: Nanley Chery <[email protected]> Reviewed-by: Jason Ekstrand <[email protected]>
* anv/meta: Add the beginnings of a blitter APIJason Ekstrand2016-03-031-0/+48
| | | | | | | | | | This API is designed to be an abstraction that sits between the VkCmdCopy commands and the hardware. The idea is that it is simple enough that it *should* be implementable using the blitter but with enough extra data that we can implement it with the 3-D pipeline efficiently. One design objective is to allow the user to supply enough information that we can handle most blit operations with a single draw call even if they require copying multiple rectangles.