[Mesa-dev] i965: Support for gen8/9 blorp
Kenneth Graunke
kenneth at whitecape.org
Thu Apr 21 04:50:16 UTC 2016
On Saturday, April 16, 2016 4:42:28 PM PDT Topi Pohjolainen wrote:
> This series adds blorp pipeline upload support for gen8 and gen9,
> switches over to blorp blits (except for 2X and 16X msaa which don't
> have support in blorp yet) and finally re-introduces blorp clears
> for gen6-9. This makes it possible to close bug 94181 preventing
> single sample compression getting enabled.
>
> First two patches are not mandatory, they are just something I wrote
> during debugging. There are quite a few patches that simply make
> either core i965 pipeline upload logic or meta fast clear utilities
> available for blorp to re-use. Most important is the texture surface
> setup for gen8/9 - blorp specific logic is only introduced for render
> target setup. I already have follow-up plans for this also where the
> aim is to drop all blorp specific surface setup logic by re-using
> core i965 upload instead. Among other things this provides easy
> switch to layered clears using instance identifier.
>
> Re-introduction of blorp clears is slightly modified as the original
> didn't integrate with the current driver. I also chose to drop some
> logic and re-use gen9 aware counterparts from i965-meta.
>
> Patches 34-39 are optimizations reducing state trashing. These are
> needed to avoid performance regressions in a few synthetic
> benchmarks. A few synthetic cases were improved even without.
>
> This series doesn't remove any meta logic yet. Simple reverts of
>
> i965/blorp: Enable blits on gen8
> i965/blorp: Enable for normal color clears
> i965/blorp: Enable for buffer resolves
>
> allow us to move back to meta if needs be.
>
> Big thanks to Ken for helping in debugging!!
>
> Topi Pohjolainen (40):
> i965/gen9: Use correct size for DS_STATE
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
> i965/gen8: Document inst buffer size modify enabling bit
I'd prefer not to land this one, but if other people want it,
I'm not really NAK'ing it either.
> i965/gen8: Expose surface state helpers
> i965/gen8: Expose state base address setup
> i965/blorp: Let compiler calculate the vertex buffer size
> i965/blorp/gen7: Prepare re-using for gen8
> i965/blorp: Use 8k chunk size for urb allocation
> i965/blorp/gen7: Expose state setup applicable to gen8
> i965/blorp/gen6: Prepare vertex buffer setup logic for gen8
> i965/blorp: Prepare render target write for gen8
> i965/blorp: Prepare sampling for gen9
> i965: Allow texture surface state setup to be used by blorp
(with the v2 of "Use 8k chunk size"...)
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
> i965/blorp: Pipeline upload support for gen8
With the PMA stall fix added, and the CCW bit removed,
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
> i965/blorp: Add support for source swizzle
This one needs CopyTexSubImage to use the swizzle. With that fixed, it
would get an R-b too. I'd love to see it use brw_get_texture_swizzle(),
though. (Maybe we should change it to take _BaseFormat rather than a
texture?)
> i965/blorp: Add support for sampling 3D textures
> i965/blorp: Add check for supported sample numbers
With the use_blorp -> !use_blorp fix,
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
> i965/blorp: Prepare stencil sampling for gen8
> i965/blorp: Enable blits on gen8
> i965/blorp: Add support for setting fast clear operation
> i965/blorp: Add support for disabling color blending
> i965/blorp: Reduce scope for generator and its inputs
> i965/blorp: Switch the order of render and texture targets
> i965: Declare input to mcs alignment calculation constant
> i965/meta: Expose fast clear rectangle calculation
> i965/meta: Expose resolve clear rectangle calculation
> i965/meta: Expose non-fast clear rectangle calculation
> i965/meta: Expose fast clear value setup
> i965/meta: Expose check for fast clear compatibility
> i965/meta: Move check for srgb into is_color_fast_clear_compatible()
> i965/blorp: Re-introduce clear programs
> i965/blorp: Skip uploading state/options not needed for clears
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
> i965/blorp/gen7: Prepare blorp being the very first renderer
I think we need to discuss this further.
> i965/blorp: Prepare to switch from compute pipeline
> i965/blorp: Skip re-emitting urb config whenever possible
> i965/blorp: Do not tricker urb re-configuration unnecessarily
with v2 of "Skip re-emitting urb config",
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
> i965/blorp: Reconfigure base state address only if needed
> i965/blorp: Leave new batch signaling to batch buffer logic
> i965/blorp: Use more fine grained state trashing than new context
I have some comments on these.
> i965/blorp: Enable for normal color clears
> i965/blorp: Enable for buffer resolves
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: This is a digitally signed message part.
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20160420/919da6f7/attachment-0001.sig>
More information about the mesa-dev
mailing list