aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* anv: Remove default scissor and viewport conceptsNanley Chery2016-04-134-49/+9
| | | | | | | | | | | | | Users should never provide a scissor or viewport count of 0 because they are required to set such state in a graphics pipeline. This behavior was previously only used in Meta, which actually just disables those hardware operations at pipeline creation time. Kristian noticed that the current assignment of viewport count reduces the number of viewport uploads, so it is not removed. Signed-off-by: Nanley Chery <[email protected]> Reviewed-by: Kristian Høgsberg Kristensen <[email protected]>
* anv: Replace ::disable_scissor with ::use_rectlistsNanley Chery2016-04-137-7/+2
| | | | | | | | | Meta currently uses screenspace RECTLIST primitives that lie within the framebuffer rectangle. Since this behavior shouldn't change in the future, disable the scissor operation whenever rectlists are used. Signed-off-by: Nanley Chery <[email protected]> Reviewed-by: Kristian Høgsberg Kristensen <[email protected]>
* anv: Delete anv_graphics_pipeline_create_info::disable_viewportNanley Chery2016-04-135-5/+0
| | | | | | | There are no users of this field. Signed-off-by: Nanley Chery <[email protected]> Reviewed-by: Kristian Høgsberg Kristensen <[email protected]>
* gen{7,8}_pipeline: Always set ViewportXYClipTestEnableNanley Chery2016-04-132-2/+2
| | | | | | | | | | | For the following reasons, there is no behavioural change with this commit: the ViewportXYClipTest function of the CLIP stage will continue to be enabled outside of Meta (where disable_viewport is always false), and the CLIP stage is turned off within Meta, so this function will continue to be disabled in that case. Signed-off-by: Nanley Chery <[email protected]> Reviewed-by: Kristian Høgsberg Kristensen <[email protected]>
* gen{7,8}_pipeline: Apply 3DPRIM_RECTLIST restrictionsNanley Chery2016-04-132-4/+4
| | | | | | | | | | | | | | | | | | | | | According to 3D Primitives Overview in the Bspec, when the RECTLIST primitive is in use, the CLIP stage should be disabled or set to have a different Clip Mode, and Viewport Mapping must be disabled: Clipping: Must not require clipping or rely on the CLIP unit’s ClipTest logic to determine if clipping is required. Either the CLIP unit should be DISABLED, or the CLIP unit’s Clip Mode should be set to a value other than CLIPMODE_NORMAL. Viewport Mapping must be DISABLED (as is typical with the use of screen-space coordinates). We swap out ::disable_viewport for ::use_rectlist, because we currently always use the RECTLIST primitive when we disable viewport mapping, and we'll likely continue to use this primitive. Signed-off-by: Nanley Chery <[email protected]> Reviewed-by: Kristian Høgsberg Kristensen <[email protected]>
* anv_cmd_buffer: Don't make the initial state dirtyNanley Chery2016-04-131-1/+1
| | | | | | | | | | | | | | | | | Avoid excessive state emission. Relevant state for an action command will get set by the user: From Chapter 5. Command Buffers, When a command buffer begins recording, all state in that command buffer is undefined. [...] Whenever the state of a command buffer is undefined, the application must set all relevant state on the command buffer before any state dependent commands such as draws and dispatches are recorded, otherwise the behavior of executing that command buffer is undefined. Signed-off-by: Nanley Chery <[email protected]> Reviewed-by: Kristian Høgsberg Kristensen <[email protected]>
* anv/meta: Don't set the dynamic state for disabled operationsNanley Chery2016-04-134-82/+3
| | | | | | | | | CmdSet* functions dirty the CommandBuffer's dynamic state. This causes the new state to be emitted when CmdDraw is called. Since we don't need the state that would be emitted, don't call the CmdSet* functions. Signed-off-by: Nanley Chery <[email protected]> Reviewed-by: Kristian Høgsberg Kristensen <[email protected]>
* anv/clear: Disable the scissor operationNanley Chery2016-04-131-0/+1
| | | | | | | | Since the scissor rectangle always matches that of the framebuffer, this operation isn't needed. Signed-off-by: Nanley Chery <[email protected]> Reviewed-by: Kristian Høgsberg Kristensen <[email protected]>
* util: Fix race condition on libgcrypt initializationMark Janes2016-04-121-8/+11
| | | | | | | | | | | | | Fixes intermittent Vulkan CTS failures within the test groups: dEQP-VK.api.object_management.multithreaded_per_thread_device dEQP-VK.api.object_management.multithreaded_per_thread_resources dEQP-VK.api.object_management.multithreaded_shared_resources Signed-off-by: Mark Janes <[email protected]> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=94904 Reviewed-by: Edward O'Callaghan <[email protected]> Reviewed-by: Jason Ekstrand <[email protected]>
* nir/lower_system_values: Simplify the computation of LocalInvocationIndexJason Ekstrand2016-04-101-9/+8
|
* anv/pipeline: Set up flat enables correctlyJason Ekstrand2016-04-091-0/+1
|
* genxml: Fix the name of a 3DSTATE_SF/SBE field on gen6-7.5Jason Ekstrand2016-04-093-3/+3
|
* genxml: Break output detail of 3DSTATE_SF on gen7 into a structJason Ekstrand2016-04-091-41/+24
| | | | This makes it work like 3DSTATE_SBE[_SWIZ] on gen7+
* genxml: Fix up MOCS in RENDER_SURFACE_STATE on gen6 to match gen7Jason Ekstrand2016-04-091-1/+2
|
* anv/meta: Make clflushes conditional on !devinfo->has_llcJason Ekstrand2016-04-082-3/+6
|
* anv/formats: Advertise blit support for stencilJason Ekstrand2016-04-081-6/+4
| | | | | | Thanks to advances in the blit code, we can do this now. Reviewed-by: Nanley Chery <[email protected]>
* anv/blit2d: Add support for W-tiled destinationsJason Ekstrand2016-04-081-44/+322
| | | | | Reviewed-by: Nanley Chery <[email protected]> Reviewed-by: Chad Versace <[email protected]>
* isl/surface_state: Set the correct pitch for W-tiled surfacesJason Ekstrand2016-04-081-1/+13
| | | | Reviewed-by: Nanley Chery <[email protected]>
* anv/blit2d: Add another passthrough varying to the VSJason Ekstrand2016-04-081-0/+9
| | | | | | We need the VS to provide some setup data for other stages. Reviewed-by: Nanley Chery <[email protected]>
* anv/image: Remove the offset parameter from image_view_initJason Ekstrand2016-04-086-11/+9
| | | | | | | The only place we were using this was in meta_blit2d which always creates a new image anyway so we can just use the image offset. Reviewed-by: Nanley Chery <[email protected]>
* anv/blit2d: Add a bind_dst helper functionJason Ekstrand2016-04-081-33/+55
| | | | Reviewed-by: Nanley Chery <[email protected]>
* anv/blit2d: Simplify create_iviewJason Ekstrand2016-04-081-30/+25
| | | | | | | Now it just creates the image and view. The caller is responsible for handling the offset calculations. Reviewed-by: Nanley Chery <[email protected]>
* nir/gather_info: Handle discard_ifJason Ekstrand2016-04-081-0/+1
| | | | Reviewed-by: Nanley Chery <[email protected]>
* anv/meta2d: Add support for blitting from W-tiled sources on gen7Jason Ekstrand2016-04-081-49/+204
| | | | | Reviewed-by: Nanley Chery <[email protected]> Reviewed-by: Chad Versace <[email protected]>
* isl: Remove surf_get_intratile_offset_elJason Ekstrand2016-04-083-125/+0
| | | | | | | The intratile offset may not be a multiple of the element size so this calculation is invalid. Reviewed-by: Nanley Chery <[email protected]>
* isl: Rework the get_intratile_offset functionJason Ekstrand2016-04-083-38/+60
| | | | | | | | | | The old function tried to work in elements which isn't, strictly speaking, a valid thing to do. In the case of a non-power-of-two format, there is no guarantee that the x offset into the tile is a multiple of the format block size. This commit refactors it to work entirely in terms of a tiling (not a surface) and bytes/rows. Reviewed-by: Nanley Chery <[email protected]>
* anv/image: Expose the guts of CreateBufferView for metaJason Ekstrand2016-04-082-16/+29
| | | | Reviewed-by: Nanley Chery <[email protected]>
* anv/blit2d: Refactor in preparation for different src/dst typesJason Ekstrand2016-04-082-120/+238
| | | | Reviewed-by: Nanley Chery <[email protected]>
* anv/blit2d: Add layouts for using a texel buffer sourceJason Ekstrand2016-04-082-12/+53
| | | | Reviewed-by: Nanley Chery <[email protected]>
* anv/blit2d: Rename the descriptor set and pipeline layoutsJason Ekstrand2016-04-082-12/+12
| | | | Reviewed-by: Nanley Chery <[email protected]>
* anv/blit2d: Enhance teardown and clean up init error pathsJason Ekstrand2016-04-081-60/+57
| | | | Reviewed-by: Nanley Chery <[email protected]>
* anv/blit2d: Factor binding the source image into a helperJason Ekstrand2016-04-081-57/+82
| | | | Reviewed-by: Nanley Chery <[email protected]>
* anv/blit2d: Inline meta_emit_blit2dJason Ekstrand2016-04-081-191/+170
| | | | Reviewed-by: Nanley Chery <[email protected]>
* anv/blit2d: Pass the source pitch into the shaderJason Ekstrand2016-04-081-8/+13
| | | | Reviewed-by: Nanley Chery <[email protected]>
* anv/blit2d: Break the texelfetch portion of shader building into a helperJason Ekstrand2016-04-081-23/+36
| | | | Reviewed-by: Nanley Chery <[email protected]>
* anv/blit2d: Fix whitespaceJason Ekstrand2016-04-081-10/+10
| | | | Reviewed-by: Nanley Chery <[email protected]>
* anv/blit2d: Fix a NIR writemaskJason Ekstrand2016-04-081-1/+1
| | | | Reviewed-by: Nanley Chery <[email protected]>
* anv/meta2d: Don't declare an array sampler in the fragment shaderJason Ekstrand2016-04-081-4/+4
| | | | | | | | With the new blit framework we aren't using array textures and, from talking with Nanley, we don't think it's going to be useful in the future either. Just get rid of it for now. Reviewed-by: Nanley Chery <[email protected]>
* anv/blit2d: Remove the tex_dim parameter from copy_fragment_shaderJason Ekstrand2016-04-081-4/+4
| | | | Reviewed-by: Nanley Chery <[email protected]>
* Merge remote-tracking branch 'public/master' into vulkanJason Ekstrand2016-04-0794-1115/+1786
|\
| * radeonsi: do per-pixel clipping based on viewport statesMarek Olšák2016-04-082-11/+85
| | | | | | | | | | | | | | | | | | In other words, vport scissors are derived from viewport states. If the scissor test is enabled, the intersection of both is used. The guard band will disable clipping, so we have to clip per-pixel. Reviewed-by: Nicolai Hähnle <[email protected]>
| * nv50/ir: do not try to attach JOIN ops to ATOMSamuel Pitoiset2016-04-071-1/+1
| | | | | | | | | | | | | | | | | | | | | | This might result in an INVALID_OPCODE dmesg error in case a join is attached to an atomic operation. Spotted with arb_shader_image_load_store-host-mem-barrier on GK104. Signed-off-by: Samuel Pitoiset <[email protected]> Acked-by: Ilia Mirkin <[email protected]> Cc: [email protected]
| * radeonsi: raise number of samplers per shader to 32Nicolai Hähnle2016-04-071-3/+3
| | | | | | | | | | Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=94835 Reviewed-by: Marek Olšák <[email protected]>
| * radeonsi: expand the compressed color and depth texture masks to 64 bitsNicolai Hähnle2016-04-073-18/+18
| | | | | | | | | | | | | | | | | | | | | | This is in preparation of raising the number of exposed sampler views to 32 bits, which will raise the total number of sampler views to 33 for the polygon stipple texture. That texture should never be compressed (and it's certainly not a depth texture), but this approach seems cleaner to me than special-casing the last slot in all affected code paths. Reviewed-by: Bas Nieuwenhuizen <[email protected]> Reviewed-by: Marek Olšák <[email protected]>
| * radeonsi: replace magic 16 by SI_NUM_USER_SAMPLERSNicolai Hähnle2016-04-071-1/+1
| | | | | | | | | | Reviewed-by: Bas Nieuwenhuizen <[email protected]> Reviewed-by: Marek Olšák <[email protected]>
| * gallium: raise PIPE_MAX_SAMPLERS to 32Nicolai Hähnle2016-04-071-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The previous value of 18 was motivated by having drivers that want to expose 16 samplers but also use some additional samplers for internal use. Raising the value even higher isn't going to hurt that case. On the other hand, some drivers actually use PIPE_MAX_SAMPLERS as the number of samplers they expose externally, so raising this number above 32 is fragile (because several places in the code use bitfields, and tracking down and widening all of them is prone to miss some case). Reviewed-by: Brian Paul <[email protected]> Reviewed-by: Roland Scheidegger <[email protected]> Reviewed-by: Marek Olšák <[email protected]>
| * st/glsl_to_tgsi: make samplers_used an uint32_t (v2)Nicolai Hähnle2016-04-071-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | It is used as a bitfield, so it seems cleaner to keep it unsigned. The literal 1 is a (signed) int, and shifting into the sign bit is undefined in C, so change occurences of 1 to 1u. v2: add an assert for bitfield size and use 1u << idx Reviewed-by: Brian Paul <[email protected]> Reviewed-by: Roland Scheidegger <[email protected]> (v1) Reviewed-by: Marek Olšák <[email protected]> (v1)
| * tgsi/scan: add an assert for the size of the samplers_declared bitfieldNicolai Hähnle2016-04-071-1/+2
| | | | | | | | | | | | | | The literal 1 is a (signed) int, and shifting into the sign bit is undefined in C, so change occurences of 1 to 1u. Reviewed-by: Brian Paul <[email protected]>
| * draw/aaline: stronger guard against no free samplers (v2)Nicolai Hähnle2016-04-071-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Line anti-aliasing will fail when there is no free sampler available. Make the corresponding guard more robust in preparation of raising PIPE_MAX_SAMPLERS to 32. The literal 1 is a (signed) int, and shifting into the sign bit is undefined in C, so change occurences of 1 to 1u. v2: add an assert for bitfield size and use 1u << idx Reviewed-by: Brian Paul <[email protected]> Reviewed-by: Roland Scheidegger <[email protected]> (v1) Reviewed-by: Bas Nieuwenhuizen <[email protected]> (v1) Reviewed-by: Marek Olšák <[email protected]> (v1)
| * util/pstipple: stronger guard against no free samplers (v2)Nicolai Hähnle2016-04-071-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When hasFixedUnit is false, polygon stippling will fail when there is no free sampler available. Make the corresponding guard more robust in preparation of raising PIPE_MAX_SAMPLERS to 32. The literal 1 is a (signed) int, and shifting into the sign bit is undefined in C, so change occurences of 1 to 1u. v2: add an assert for bitfield size and use 1u << idx Reviewed-by: Brian Paul <[email protected]> Reviewed-by: Roland Scheidegger <[email protected]> (v1) Reviewed-by: Bas Nieuwenhuizen <[email protected]> (v1) Reviewed-by: Marek Olšák <[email protected]> (v1)