summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* anv/blit2d: Use the tiling enum for simplicityNanley Chery2016-03-091-4/+2
| | | | | Signed-off-by: Nanley Chery <[email protected]> Reviewed-by: Anuj Phogat <[email protected]>
* anv/meta: Prefix anv_ to meta_emit_blit()Nanley Chery2016-03-093-4/+4
| | | | | | | Follow the convention for non-static functions. Signed-off-by: Nanley Chery <[email protected]> Reviewed-by: Anuj Phogat <[email protected]>
* anv/meta: Split anv_meta_blit.c into three filesNanley Chery2016-03-094-606/+662
| | | | | | | | | | | | | The new organization is as follows: * anv_meta_blit.c: Blit and state setup/teardown commands * anv_meta_copy.c: Copy and update commands * anv_meta_blit2d.c: 2D Blitter API commands Also, change the formatting to contain most lines within 80 columns. Signed-off-by: Nanley Chery <[email protected]> Reviewed-by: Anuj Phogat <[email protected]>
* anv/meta: Make meta_emit_blit() publicNanley Chery2016-03-092-1/+12
| | | | | | | | This can be reverted if the only other consumer, anv_meta_blit2d(), uses a different method. Signed-off-by: Nanley Chery <[email protected]> Reviewed-by: Anuj Phogat <[email protected]>
* anv/meta: Store src and dst usage flags in a variableNanley Chery2016-03-091-4/+6
| | | | | Signed-off-by: Nanley Chery <[email protected]> Reviewed-by: Anuj Phogat <[email protected]>
* anv/meta: Minimize height of images used for copiesNanley Chery2016-03-091-2/+12
| | | | | | | | | | | In addition to demystifying the value being added to the height, this future-proofs the code for new tiling modes and keeps the image height as small as possible. v2: Actually use the smallest height possible. Signed-off-by: Nanley Chery <[email protected]> Reviewed-by: Anuj Phogat <[email protected]>
* anv/cmd_buffer: Pull the core of flush_state into genX_cmd_bufferJason Ekstrand2016-03-084-276/+185
|
* anv/cmd_buffer: Split flush_state into two functionsJason Ekstrand2016-03-083-2/+21
|
* anv: Pull all of the genX_foo functions into anv_genX.hJason Ekstrand2016-03-082-141/+79
| | | | | This way we only have to declare them each once and we get it for all gens at a single go.
* anv/meta_clear: Use repclear againJason Ekstrand2016-03-081-4/+5
|
* anv/pipeline: Unconditionally emit PS_BLEND on gen8+Jason Ekstrand2016-03-081-18/+14
| | | | | | | | Special-casing the PS_BLEND packet wasn't really gaining us anything. It's defined to be more-or-less the contents of blend state entry 0 only without the indirection. We can just copy-and-paste the contents. If there are no valid color targets, then blend state 0 will be 0-initialized anyway so it's basically the same as the special case we had before.
* anv: Compact render targetsJason Ekstrand2016-03-084-42/+104
| | | | | | | Previously, we would always emit all of the render targets in the subpass. This commit changes it so that we compact render targets just like we do with other resources. Render targets are represented in the surface map by using a descriptor set index of UINT16_MAX.
* anv/pipeline: Move binding table setup to its own helperJason Ekstrand2016-03-071-21/+18
|
* anv: Store CPU-side fence information in the BOJason Ekstrand2016-03-071-18/+15
| | | | | | This reduces the number of allocations a bit and cuts back on memory usage. Kind-of a micro-optimization but it also makes the error handling a bit simpler so it seems like a win.
* anv/allocator: Better casting in PFL macrosJason Ekstrand2016-03-071-2/+2
| | | | | | | We cast he constant 0xfff values to a uintptr_t before applying a bitwise negate to ensure that they are actually 64-bit when needed. Also, the count variable doesn't need to be explicitly cast, it will get upcast as needed by the "|" operation.
* anv/allocator: Move the alignment assert for the pointer free listJason Ekstrand2016-03-071-1/+6
| | | | | | | | | Previously we asserted every time you tried to pack a pointer and a counter together. However, this wasn't really correct. In the case where you try to grab the last element of the list, the "next elemnet" value you get may be bogus if someonoe else got there first. This was leading to assertion failures even though the allocator would safely fall through to the failure case below.
* anv/bo_pool: Allow freeing BOs where the anv_bo is in the BO itselfJason Ekstrand2016-03-071-4/+6
|
* anv/device: Up device limits for 3D and array texture dimensionsNanley Chery2016-03-071-2/+2
| | | | | | | The limit for these textures is 2048 not 1024. Signed-off-by: Nanley Chery <[email protected]> Reviewed-by: Anuj Phogat <[email protected]>
* anv/device: Actually free the CPU-side fence struct againJason Ekstrand2016-03-071-0/+1
| | | | | In 23de78768, when we switched from allocating individual BOs to using the pool for fences, we accidentally deleted the free.
* anv: Quiet pTessellationState warningKristian Høgsberg Kristensen2016-03-061-3/+3
| | | | | | Some application pass a dummy for pTessellationState which results in a lot of noise. Only warn if we're actually given tessellation shadear stages.
* anv: Create fences from the batch BO poolJason Ekstrand2016-03-061-8/+2
| | | | | | Applications may create a *lot* of fences, perhaps as much as one per vkQueueSubmit. Really, they're supposed to use ResetFence, but it's easy enough for us to make them crazy-cheap so we might as well.
* 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]>