[Mesa-dev] [PATCH V2 17/22] i965/gen9: Add XY_FAST_COPY_BLT support to intelEmitCopyBlit()
Anuj Phogat
anuj.phogat at gmail.com
Thu May 21 17:48:45 PDT 2015
On Thu, May 21, 2015 at 1:51 PM, Matt Turner <mattst88 at gmail.com> wrote:
> On Thu, May 21, 2015 at 12:26 PM, Ben Widawsky <ben at bwidawsk.net> wrote:
>> A lot of opinion stuff is below, feel free to ignore them if you don't think
>> there are improvements.
>>
>> On Fri, Apr 17, 2015 at 04:51:38PM -0700, Anuj Phogat wrote:
>>> This patch enables using XY_FAST_COPY_BLT only for Yf/Ys tiled buffers.
>>> Later It can be turned on for other tiling patterns (X,Y).
>>>
>>> Signed-off-by: Anuj Phogat <anuj.phogat at gmail.com>
>>> ---
>>> src/mesa/drivers/dri/i965/intel_blit.c | 292 +++++++++++++++++++++++----
>>> src/mesa/drivers/dri/i965/intel_blit.h | 3 +
>>> src/mesa/drivers/dri/i965/intel_copy_image.c | 3 +
>>> src/mesa/drivers/dri/i965/intel_reg.h | 33 +++
>>> 4 files changed, 291 insertions(+), 40 deletions(-)
>>>
>>> diff --git a/src/mesa/drivers/dri/i965/intel_blit.c b/src/mesa/drivers/dri/i965/intel_blit.c
>>> index 9500bd7..36746c4 100644
>>> --- a/src/mesa/drivers/dri/i965/intel_blit.c
>>> +++ b/src/mesa/drivers/dri/i965/intel_blit.c
>>> @@ -43,6 +43,23 @@
>>>
>>> #define FILE_DEBUG_FLAG DEBUG_BLIT
>>>
>>> +#define SET_TILING_XY_FAST_COPY_BLT(tiling, tr_mode, type) \
>>> +({ \
>>> + switch (tiling) { \
>>> + case I915_TILING_X: \
>>> + CMD |= type ## _TILED_X; \
>>> + break; \
>>> + case I915_TILING_Y: \
>>
>> assert(tr_mode != INTEL_MIPTREE_TRMODE_YF); ?
>>
>>> + if (tr_mode == INTEL_MIPTREE_TRMODE_YS) \
>>> + CMD |= type ## _TILED_64K; \
>>> + else \
>>> + CMD |= type ## _TILED_Y; \
>>> + break; \
>>> + default: \
>>> + unreachable("not reached"); \
>>> + } \
>>> +})
>>> +
>>> static void
>>> intel_miptree_set_alpha_to_one(struct brw_context *brw,
>>> struct intel_mipmap_tree *mt,
>>> @@ -75,6 +92,12 @@ static uint32_t
>>> br13_for_cpp(int cpp)
>>> {
>>> switch (cpp) {
>>> + case 16:
>>> + return BR13_32323232;
>>> + break;
>>> + case 8:
>>> + return BR13_16161616;
>>> + break;
>>> case 4:
>>> return BR13_8888;
>>> break;
>
> No need for break after return.
Yes, copy-pasted code.
More information about the mesa-dev
mailing list