Intel-2D: genXX_blit_tex for all
git-svn-id: svn://kolibrios.org@3299 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
ff32f19a91
commit
be775e6230
54
drivers/video/Intel-2D/brw/brw_sf.c
Normal file
54
drivers/video/Intel-2D/brw/brw_sf.c
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
#include "brw.h"
|
||||||
|
|
||||||
|
bool brw_sf_kernel__nomask(struct brw_compile *p)
|
||||||
|
{
|
||||||
|
struct brw_reg inv, v0, v1, v2, delta;
|
||||||
|
|
||||||
|
v0 = brw_vec4_grf(3, 0);
|
||||||
|
v1 = brw_vec4_grf(4, 0);
|
||||||
|
v2 = brw_vec4_grf(5, 0);
|
||||||
|
delta = brw_vec8_grf(7, 0);
|
||||||
|
|
||||||
|
inv = brw_vec4_grf(6, 0);
|
||||||
|
brw_math_invert(p, inv, brw_vec4_grf(1, 11));
|
||||||
|
|
||||||
|
brw_MOV(p, brw_message_reg(3), v0);
|
||||||
|
|
||||||
|
brw_ADD(p, delta, v1, brw_negate(v2));
|
||||||
|
brw_MUL(p, brw_message_reg(1), delta, brw_vec1_grf(6,0));
|
||||||
|
|
||||||
|
brw_ADD(p, delta, v2, brw_negate(v0));
|
||||||
|
brw_MUL(p, brw_message_reg(2), delta, brw_vec1_grf(6,2));
|
||||||
|
|
||||||
|
brw_urb_WRITE(p, brw_null_reg(), 0, brw_vec8_grf(0 ,0),
|
||||||
|
false, true, 4, 0, true, true, 0,
|
||||||
|
BRW_URB_SWIZZLE_TRANSPOSE);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool brw_sf_kernel__mask(struct brw_compile *p)
|
||||||
|
{
|
||||||
|
struct brw_reg inv, v0, v1, v2;
|
||||||
|
|
||||||
|
v0 = brw_vec8_grf(3, 0);
|
||||||
|
v1 = brw_vec8_grf(4, 0);
|
||||||
|
v2 = brw_vec8_grf(5, 0);
|
||||||
|
|
||||||
|
inv = brw_vec4_grf(6, 0);
|
||||||
|
brw_math_invert(p, inv, brw_vec4_grf(1, 11));
|
||||||
|
|
||||||
|
brw_MOV(p, brw_message_reg(3), v0);
|
||||||
|
|
||||||
|
brw_ADD(p, brw_vec8_grf(7, 0), v1, brw_negate(v2));
|
||||||
|
brw_MUL(p, brw_message_reg(1), brw_vec8_grf(7, 0), brw_vec1_grf(6,0));
|
||||||
|
|
||||||
|
brw_ADD(p, brw_vec8_grf(7, 0), v2, brw_negate(v0));
|
||||||
|
brw_MUL(p, brw_message_reg(2), brw_vec8_grf(7, 0), brw_vec1_grf(6,2));
|
||||||
|
|
||||||
|
brw_urb_WRITE(p, brw_null_reg(), 0, brw_vec8_grf(0 ,0),
|
||||||
|
false, true, 4, 0, true, true, 0,
|
||||||
|
BRW_URB_SWIZZLE_TRANSPOSE);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
1967
drivers/video/Intel-2D/gen3_render.c
Normal file
1967
drivers/video/Intel-2D/gen3_render.c
Normal file
File diff suppressed because it is too large
Load Diff
1479
drivers/video/Intel-2D/gen3_render.h
Normal file
1479
drivers/video/Intel-2D/gen3_render.h
Normal file
File diff suppressed because it is too large
Load Diff
@ -44,7 +44,6 @@ int user_free(void *mem)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
unsigned int cpu_cache_size();
|
unsigned int cpu_cache_size();
|
||||||
|
|
||||||
static struct kgem_bo *
|
static struct kgem_bo *
|
||||||
@ -794,8 +793,8 @@ static bool test_has_pinned_batches(struct kgem *kgem)
|
|||||||
|
|
||||||
static bool kgem_init_pinned_batches(struct kgem *kgem)
|
static bool kgem_init_pinned_batches(struct kgem *kgem)
|
||||||
{
|
{
|
||||||
int count[2] = { 4, 2 };
|
int count[2] = { 2, 1 };
|
||||||
int size[2] = { 1, 4 };
|
int size[2] = { 1, 2 };
|
||||||
int n, i;
|
int n, i;
|
||||||
|
|
||||||
if (kgem->wedged)
|
if (kgem->wedged)
|
||||||
@ -1339,7 +1338,6 @@ static void kgem_bo_release_map(struct kgem *kgem, struct kgem_bo *bo)
|
|||||||
static void kgem_bo_free(struct kgem *kgem, struct kgem_bo *bo)
|
static void kgem_bo_free(struct kgem *kgem, struct kgem_bo *bo)
|
||||||
{
|
{
|
||||||
DBG(("%s: handle=%d\n", __FUNCTION__, bo->handle));
|
DBG(("%s: handle=%d\n", __FUNCTION__, bo->handle));
|
||||||
printf("%s: handle=%d\n", __FUNCTION__, bo->handle);
|
|
||||||
|
|
||||||
assert(bo->refcnt == 0);
|
assert(bo->refcnt == 0);
|
||||||
assert(bo->exec == NULL);
|
assert(bo->exec == NULL);
|
||||||
@ -1601,8 +1599,6 @@ static void __kgem_bo_destroy(struct kgem *kgem, struct kgem_bo *bo)
|
|||||||
{
|
{
|
||||||
DBG(("%s: handle=%d\n", __FUNCTION__, bo->handle));
|
DBG(("%s: handle=%d\n", __FUNCTION__, bo->handle));
|
||||||
|
|
||||||
printf("%s: handle=%d\n", __FUNCTION__, bo->handle);
|
|
||||||
|
|
||||||
assert(list_is_empty(&bo->list));
|
assert(list_is_empty(&bo->list));
|
||||||
assert(bo->refcnt == 0);
|
assert(bo->refcnt == 0);
|
||||||
assert(!bo->purged);
|
assert(!bo->purged);
|
||||||
@ -4208,8 +4204,8 @@ int kgem_init_fb(struct kgem *kgem, struct sna_fb *fb)
|
|||||||
bo->scanout = 1;
|
bo->scanout = 1;
|
||||||
fb->fb_bo = bo;
|
fb->fb_bo = bo;
|
||||||
|
|
||||||
printf("fb width %d height %d pitch %d bo %p\n",
|
// printf("fb width %d height %d pitch %d bo %p\n",
|
||||||
fb->width, fb->height, fb->pitch, fb->fb_bo);
|
// fb->width, fb->height, fb->pitch, fb->fb_bo);
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
};
|
};
|
||||||
|
@ -28,7 +28,7 @@
|
|||||||
#ifndef KGEM_H
|
#ifndef KGEM_H
|
||||||
#define KGEM_H
|
#define KGEM_H
|
||||||
|
|
||||||
#define HAS_DEBUG_FULL 1
|
#define HAS_DEBUG_FULL 0
|
||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
@ -40,6 +40,13 @@
|
|||||||
#include "compiler.h"
|
#include "compiler.h"
|
||||||
#include "intel_list.h"
|
#include "intel_list.h"
|
||||||
|
|
||||||
|
static inline void delay(uint32_t time)
|
||||||
|
{
|
||||||
|
__asm__ __volatile__(
|
||||||
|
"int $0x40"
|
||||||
|
::"a"(5), "b"(time)
|
||||||
|
:"memory");
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
#if HAS_DEBUG_FULL
|
#if HAS_DEBUG_FULL
|
||||||
|
7
drivers/video/Intel-2D/render/exa_sf.g5b
Normal file
7
drivers/video/Intel-2D/render/exa_sf.g5b
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
{ 0x00400031, 0x20c01fbd, 0x1069002c, 0x02100001 },
|
||||||
|
{ 0x00400001, 0x206003be, 0x00690060, 0x00000000 },
|
||||||
|
{ 0x00400040, 0x20e077bd, 0x00690080, 0x006940a0 },
|
||||||
|
{ 0x00400041, 0x202077be, 0x006900e0, 0x000000c0 },
|
||||||
|
{ 0x00400040, 0x20e077bd, 0x006900a0, 0x00694060 },
|
||||||
|
{ 0x00400041, 0x204077be, 0x006900e0, 0x000000c8 },
|
||||||
|
{ 0x00600031, 0x20001fbc, 0x648d0000, 0x8808c800 },
|
7
drivers/video/Intel-2D/render/exa_sf_mask.g5b
Normal file
7
drivers/video/Intel-2D/render/exa_sf_mask.g5b
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
{ 0x00400031, 0x20c01fbd, 0x1069002c, 0x02100001 },
|
||||||
|
{ 0x00600001, 0x206003be, 0x008d0060, 0x00000000 },
|
||||||
|
{ 0x00600040, 0x20e077bd, 0x008d0080, 0x008d40a0 },
|
||||||
|
{ 0x00600041, 0x202077be, 0x008d00e0, 0x000000c0 },
|
||||||
|
{ 0x00600040, 0x20e077bd, 0x008d00a0, 0x008d4060 },
|
||||||
|
{ 0x00600041, 0x204077be, 0x008d00e0, 0x000000c8 },
|
||||||
|
{ 0x00600031, 0x20001fbc, 0x648d0000, 0x8808c800 },
|
4
drivers/video/Intel-2D/render/exa_wm_ca.g5b
Normal file
4
drivers/video/Intel-2D/render/exa_wm_ca.g5b
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
{ 0x00802041, 0x21c077bd, 0x008d01c0, 0x008d02c0 },
|
||||||
|
{ 0x00802041, 0x220077bd, 0x008d0200, 0x008d0300 },
|
||||||
|
{ 0x00802041, 0x224077bd, 0x008d0240, 0x008d0340 },
|
||||||
|
{ 0x00802041, 0x228077bd, 0x008d0280, 0x008d0380 },
|
4
drivers/video/Intel-2D/render/exa_wm_ca_srcalpha.g5b
Normal file
4
drivers/video/Intel-2D/render/exa_wm_ca_srcalpha.g5b
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
{ 0x00802041, 0x21c077bd, 0x008d02c0, 0x008d0280 },
|
||||||
|
{ 0x00802041, 0x220077bd, 0x008d0300, 0x008d0280 },
|
||||||
|
{ 0x00802041, 0x224077bd, 0x008d0340, 0x008d0280 },
|
||||||
|
{ 0x00802041, 0x228077bd, 0x008d0380, 0x008d0280 },
|
4
drivers/video/Intel-2D/render/exa_wm_mask_affine.g5b
Normal file
4
drivers/video/Intel-2D/render/exa_wm_mask_affine.g5b
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
{ 0x00802059, 0x200077bc, 0x000000a0, 0x008d0100 },
|
||||||
|
{ 0x00802048, 0x210077be, 0x000000a4, 0x008d0140 },
|
||||||
|
{ 0x00802059, 0x200077bc, 0x000000b0, 0x008d0100 },
|
||||||
|
{ 0x00802048, 0x214077be, 0x000000b4, 0x008d0140 },
|
4
drivers/video/Intel-2D/render/exa_wm_mask_affine.g7b
Normal file
4
drivers/video/Intel-2D/render/exa_wm_mask_affine.g7b
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
{ 0x0060005a, 0x290077bd, 0x00000100, 0x008d0040 },
|
||||||
|
{ 0x0060005a, 0x292077bd, 0x00000100, 0x008d0080 },
|
||||||
|
{ 0x0060005a, 0x294077bd, 0x00000110, 0x008d0040 },
|
||||||
|
{ 0x0060005a, 0x296077bd, 0x00000110, 0x008d0080 },
|
16
drivers/video/Intel-2D/render/exa_wm_mask_projective.g5b
Normal file
16
drivers/video/Intel-2D/render/exa_wm_mask_projective.g5b
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
{ 0x00802041, 0x23c077bd, 0x008d0100, 0x000000c0 },
|
||||||
|
{ 0x00802041, 0x238077bd, 0x008d0140, 0x000000c4 },
|
||||||
|
{ 0x00802040, 0x23c077bd, 0x008d03c0, 0x008d0380 },
|
||||||
|
{ 0x00802040, 0x23c077bd, 0x008d03c0, 0x000000cc },
|
||||||
|
{ 0x00600031, 0x21801fbd, 0x108d03c0, 0x02100001 },
|
||||||
|
{ 0x00600031, 0x21a01fbd, 0x108d03e0, 0x02100001 },
|
||||||
|
{ 0x00802041, 0x23c077bd, 0x008d0100, 0x000000a0 },
|
||||||
|
{ 0x00802041, 0x238077bd, 0x008d0140, 0x000000a4 },
|
||||||
|
{ 0x00802040, 0x23c077bd, 0x008d03c0, 0x008d0380 },
|
||||||
|
{ 0x00802040, 0x23c077bd, 0x008d03c0, 0x000000ac },
|
||||||
|
{ 0x00802041, 0x210077be, 0x008d03c0, 0x008d0180 },
|
||||||
|
{ 0x00802041, 0x23c077bd, 0x008d0100, 0x000000b0 },
|
||||||
|
{ 0x00802041, 0x238077bd, 0x008d0140, 0x000000b4 },
|
||||||
|
{ 0x00802040, 0x23c077bd, 0x008d03c0, 0x008d0380 },
|
||||||
|
{ 0x00802040, 0x23c077bd, 0x008d03c0, 0x000000bc },
|
||||||
|
{ 0x00802041, 0x214077be, 0x008d03c0, 0x008d0180 },
|
12
drivers/video/Intel-2D/render/exa_wm_mask_projective.g7b
Normal file
12
drivers/video/Intel-2D/render/exa_wm_mask_projective.g7b
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
{ 0x0060005a, 0x23c077bd, 0x00000120, 0x008d0040 },
|
||||||
|
{ 0x0060005a, 0x23e077bd, 0x00000120, 0x008d0080 },
|
||||||
|
{ 0x01600038, 0x218003bd, 0x008d03c0, 0x00000000 },
|
||||||
|
{ 0x01600038, 0x21a003bd, 0x008d03e0, 0x00000000 },
|
||||||
|
{ 0x0060005a, 0x23c077bd, 0x00000100, 0x008d0040 },
|
||||||
|
{ 0x0060005a, 0x23e077bd, 0x00000100, 0x008d0080 },
|
||||||
|
{ 0x00600041, 0x290077bd, 0x008d03c0, 0x008d0180 },
|
||||||
|
{ 0x00600041, 0x292077bd, 0x008d03e0, 0x008d01a0 },
|
||||||
|
{ 0x0060005a, 0x23c077bd, 0x00000110, 0x008d0040 },
|
||||||
|
{ 0x0060005a, 0x23e077bd, 0x00000110, 0x008d0080 },
|
||||||
|
{ 0x00600041, 0x294077bd, 0x008d03c0, 0x008d0180 },
|
||||||
|
{ 0x00600041, 0x296077bd, 0x008d03e0, 0x008d01a0 },
|
3
drivers/video/Intel-2D/render/exa_wm_mask_sample_a.g5b
Normal file
3
drivers/video/Intel-2D/render/exa_wm_mask_sample_a.g5b
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{ 0x00000201, 0x20080061, 0x00000000, 0x00007000 },
|
||||||
|
{ 0x00600001, 0x20e00022, 0x008d0000, 0x00000000 },
|
||||||
|
{ 0x07800031, 0x23801c09, 0x20000000, 0x0a2a0102 },
|
3
drivers/video/Intel-2D/render/exa_wm_mask_sample_a.g7b
Normal file
3
drivers/video/Intel-2D/render/exa_wm_mask_sample_a.g7b
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{ 0x00000201, 0x20080061, 0x00000000, 0x00007000 },
|
||||||
|
{ 0x00600001, 0x28e00021, 0x008d0000, 0x00000000 },
|
||||||
|
{ 0x02800031, 0x23801ca9, 0x000008e0, 0x0a2c0102 },
|
@ -0,0 +1,3 @@
|
|||||||
|
{ 0x00000201, 0x20080061, 0x00000000, 0x00000000 },
|
||||||
|
{ 0x00600001, 0x20e00022, 0x008d0000, 0x00000000 },
|
||||||
|
{ 0x07800031, 0x22c01c09, 0x20000000, 0x0a8a0102 },
|
@ -0,0 +1,3 @@
|
|||||||
|
{ 0x00000201, 0x20080061, 0x00000000, 0x00000000 },
|
||||||
|
{ 0x00600001, 0x28e00021, 0x008d0000, 0x00000000 },
|
||||||
|
{ 0x02800031, 0x22c01ca9, 0x000008e0, 0x0a8c0102 },
|
4
drivers/video/Intel-2D/render/exa_wm_noca.g5b
Normal file
4
drivers/video/Intel-2D/render/exa_wm_noca.g5b
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
{ 0x00802041, 0x21c077bd, 0x008d01c0, 0x008d0380 },
|
||||||
|
{ 0x00802041, 0x220077bd, 0x008d0200, 0x008d0380 },
|
||||||
|
{ 0x00802041, 0x224077bd, 0x008d0240, 0x008d0380 },
|
||||||
|
{ 0x00802041, 0x228077bd, 0x008d0280, 0x008d0380 },
|
4
drivers/video/Intel-2D/render/exa_wm_src_affine.g5b
Normal file
4
drivers/video/Intel-2D/render/exa_wm_src_affine.g5b
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
{ 0x00802059, 0x200077bc, 0x00000060, 0x008d0100 },
|
||||||
|
{ 0x00802048, 0x204077be, 0x00000064, 0x008d0140 },
|
||||||
|
{ 0x00802059, 0x200077bc, 0x00000070, 0x008d0100 },
|
||||||
|
{ 0x00802048, 0x208077be, 0x00000074, 0x008d0140 },
|
4
drivers/video/Intel-2D/render/exa_wm_src_affine.g7b
Normal file
4
drivers/video/Intel-2D/render/exa_wm_src_affine.g7b
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
{ 0x0060005a, 0x284077bd, 0x000000c0, 0x008d0040 },
|
||||||
|
{ 0x0060005a, 0x286077bd, 0x000000c0, 0x008d0080 },
|
||||||
|
{ 0x0060005a, 0x288077bd, 0x000000d0, 0x008d0040 },
|
||||||
|
{ 0x0060005a, 0x28a077bd, 0x000000d0, 0x008d0080 },
|
16
drivers/video/Intel-2D/render/exa_wm_src_projective.g5b
Normal file
16
drivers/video/Intel-2D/render/exa_wm_src_projective.g5b
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
{ 0x00802041, 0x23c077bd, 0x008d0100, 0x00000080 },
|
||||||
|
{ 0x00802041, 0x238077bd, 0x008d0140, 0x00000084 },
|
||||||
|
{ 0x00802040, 0x23c077bd, 0x008d03c0, 0x008d0380 },
|
||||||
|
{ 0x00802040, 0x23c077bd, 0x008d03c0, 0x0000008c },
|
||||||
|
{ 0x00600031, 0x21801fbd, 0x108d03c0, 0x02100001 },
|
||||||
|
{ 0x00600031, 0x21a01fbd, 0x108d03e0, 0x02100001 },
|
||||||
|
{ 0x00802041, 0x23c077bd, 0x008d0100, 0x00000060 },
|
||||||
|
{ 0x00802041, 0x238077bd, 0x008d0140, 0x00000064 },
|
||||||
|
{ 0x00802040, 0x23c077bd, 0x008d03c0, 0x008d0380 },
|
||||||
|
{ 0x00802040, 0x23c077bd, 0x008d03c0, 0x0000006c },
|
||||||
|
{ 0x00802041, 0x204077be, 0x008d03c0, 0x008d0180 },
|
||||||
|
{ 0x00802041, 0x23c077bd, 0x008d0100, 0x00000070 },
|
||||||
|
{ 0x00802041, 0x238077bd, 0x008d0140, 0x00000074 },
|
||||||
|
{ 0x00802040, 0x23c077bd, 0x008d03c0, 0x008d0380 },
|
||||||
|
{ 0x00802040, 0x23c077bd, 0x008d03c0, 0x0000007c },
|
||||||
|
{ 0x00802041, 0x208077be, 0x008d03c0, 0x008d0180 },
|
12
drivers/video/Intel-2D/render/exa_wm_src_projective.g7b
Normal file
12
drivers/video/Intel-2D/render/exa_wm_src_projective.g7b
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
{ 0x0060005a, 0x23c077bd, 0x000000e0, 0x008d0040 },
|
||||||
|
{ 0x0060005a, 0x23e077bd, 0x000000e0, 0x008d0080 },
|
||||||
|
{ 0x01600038, 0x218003bd, 0x008d03c0, 0x00000000 },
|
||||||
|
{ 0x01600038, 0x21a003bd, 0x008d03e0, 0x00000000 },
|
||||||
|
{ 0x0060005a, 0x23c077bd, 0x000000c0, 0x008d0040 },
|
||||||
|
{ 0x0060005a, 0x23e077bd, 0x000000c0, 0x008d0080 },
|
||||||
|
{ 0x00600041, 0x284077bd, 0x008d03c0, 0x008d0180 },
|
||||||
|
{ 0x00600041, 0x286077bd, 0x008d03e0, 0x008d01a0 },
|
||||||
|
{ 0x0060005a, 0x23c077bd, 0x000000d0, 0x008d0040 },
|
||||||
|
{ 0x0060005a, 0x23e077bd, 0x000000d0, 0x008d0080 },
|
||||||
|
{ 0x00600041, 0x288077bd, 0x008d03c0, 0x008d0180 },
|
||||||
|
{ 0x00600041, 0x28a077bd, 0x008d03e0, 0x008d01a0 },
|
3
drivers/video/Intel-2D/render/exa_wm_src_sample_a.g5b
Normal file
3
drivers/video/Intel-2D/render/exa_wm_src_sample_a.g5b
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{ 0x00000201, 0x20080061, 0x00000000, 0x00007000 },
|
||||||
|
{ 0x00600001, 0x20200022, 0x008d0000, 0x00000000 },
|
||||||
|
{ 0x01800031, 0x22801c09, 0x20000000, 0x0a2a0001 },
|
3
drivers/video/Intel-2D/render/exa_wm_src_sample_a.g7b
Normal file
3
drivers/video/Intel-2D/render/exa_wm_src_sample_a.g7b
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{ 0x00000201, 0x20080061, 0x00000000, 0x00007000 },
|
||||||
|
{ 0x00600001, 0x28200021, 0x008d0000, 0x00000000 },
|
||||||
|
{ 0x02800031, 0x22801ca9, 0x00000820, 0x0a2c0001 },
|
2
drivers/video/Intel-2D/render/exa_wm_src_sample_argb.g5b
Normal file
2
drivers/video/Intel-2D/render/exa_wm_src_sample_argb.g5b
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
{ 0x00000201, 0x20080061, 0x00000000, 0x00000000 },
|
||||||
|
{ 0x01800031, 0x21c01d29, 0x208d0000, 0x0a8a0001 },
|
3
drivers/video/Intel-2D/render/exa_wm_src_sample_argb.g7b
Normal file
3
drivers/video/Intel-2D/render/exa_wm_src_sample_argb.g7b
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{ 0x00000201, 0x20080061, 0x00000000, 0x00000000 },
|
||||||
|
{ 0x00600001, 0x28200021, 0x008d0000, 0x00000000 },
|
||||||
|
{ 0x02800031, 0x21c01ca9, 0x00000820, 0x0a8c0001 },
|
@ -0,0 +1,5 @@
|
|||||||
|
{ 0x00000201, 0x20080061, 0x00000000, 0x0000e000 },
|
||||||
|
{ 0x00600001, 0x20200022, 0x008d0000, 0x00000000 },
|
||||||
|
{ 0x01800031, 0x22001c09, 0x20000000, 0x0a2a0001 },
|
||||||
|
{ 0x01800031, 0x21c01c09, 0x20000000, 0x0a2a0003 },
|
||||||
|
{ 0x01800031, 0x22401c09, 0x20000000, 0x0a2a0005 },
|
@ -0,0 +1,5 @@
|
|||||||
|
{ 0x00000201, 0x20080061, 0x00000000, 0x0000e000 },
|
||||||
|
{ 0x00600001, 0x28200021, 0x008d0000, 0x00000000 },
|
||||||
|
{ 0x02800031, 0x22001ca9, 0x00000820, 0x0a2c0001 },
|
||||||
|
{ 0x02800031, 0x21c01ca9, 0x00000820, 0x0a2c0003 },
|
||||||
|
{ 0x02800031, 0x22401ca9, 0x00000820, 0x0a2c0005 },
|
6
drivers/video/Intel-2D/render/exa_wm_write.g5b
Normal file
6
drivers/video/Intel-2D/render/exa_wm_write.g5b
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
{ 0x00802001, 0x304003be, 0x008d01c0, 0x00000000 },
|
||||||
|
{ 0x00802001, 0x306003be, 0x008d0200, 0x00000000 },
|
||||||
|
{ 0x00802001, 0x308003be, 0x008d0240, 0x00000000 },
|
||||||
|
{ 0x00802001, 0x30a003be, 0x008d0280, 0x00000000 },
|
||||||
|
{ 0x00600201, 0x202003be, 0x008d0020, 0x00000000 },
|
||||||
|
{ 0x00800031, 0x24001d28, 0x548d0000, 0x94084800 },
|
17
drivers/video/Intel-2D/render/exa_wm_write.g7b
Normal file
17
drivers/video/Intel-2D/render/exa_wm_write.g7b
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
{ 0x00600001, 0x284003bd, 0x008d01c0, 0x00000000 },
|
||||||
|
{ 0x00600001, 0x286003bd, 0x008d01e0, 0x00000000 },
|
||||||
|
{ 0x00600001, 0x288003bd, 0x008d0200, 0x00000000 },
|
||||||
|
{ 0x00600001, 0x28a003bd, 0x008d0220, 0x00000000 },
|
||||||
|
{ 0x00600001, 0x28c003bd, 0x008d0240, 0x00000000 },
|
||||||
|
{ 0x00600001, 0x28e003bd, 0x008d0260, 0x00000000 },
|
||||||
|
{ 0x00600001, 0x290003bd, 0x008d0280, 0x00000000 },
|
||||||
|
{ 0x00600001, 0x292003bd, 0x008d02a0, 0x00000000 },
|
||||||
|
{ 0x05800031, 0x24001ca8, 0x00000840, 0x90031000 },
|
||||||
|
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
|
||||||
|
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
|
||||||
|
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
|
||||||
|
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
|
||||||
|
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
|
||||||
|
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
|
||||||
|
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
|
||||||
|
{ 0x0000007e, 0x00000000, 0x00000000, 0x00000000 },
|
4
drivers/video/Intel-2D/render/exa_wm_xy.g5b
Normal file
4
drivers/video/Intel-2D/render/exa_wm_xy.g5b
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
{ 0x00800040, 0x23c06d29, 0x00480028, 0x10101010 },
|
||||||
|
{ 0x00800040, 0x23806d29, 0x0048002a, 0x11001100 },
|
||||||
|
{ 0x00802040, 0x2100753d, 0x008d03c0, 0x00004020 },
|
||||||
|
{ 0x00802040, 0x2140753d, 0x008d0380, 0x00004024 },
|
12
drivers/video/Intel-2D/render/exa_wm_yuv_rgb.g5b
Normal file
12
drivers/video/Intel-2D/render/exa_wm_yuv_rgb.g5b
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
{ 0x00802040, 0x23007fbd, 0x008d0200, 0xbd808081 },
|
||||||
|
{ 0x00802041, 0x23007fbd, 0x008d0300, 0x3f94fdf4 },
|
||||||
|
{ 0x00802040, 0x22c07fbd, 0x008d01c0, 0xbf008084 },
|
||||||
|
{ 0x00802040, 0x23407fbd, 0x008d0240, 0xbf008084 },
|
||||||
|
{ 0x00802001, 0x240003bc, 0x008d0300, 0x00000000 },
|
||||||
|
{ 0x80802048, 0x21c07fbd, 0x008d02c0, 0x3fcc49ba },
|
||||||
|
{ 0x00802001, 0x240003bc, 0x008d0300, 0x00000000 },
|
||||||
|
{ 0x00802048, 0x24007fbc, 0x008d02c0, 0xbf5020c5 },
|
||||||
|
{ 0x80802048, 0x22007fbd, 0x008d0340, 0xbec8b439 },
|
||||||
|
{ 0x00802001, 0x240003bc, 0x008d0300, 0x00000000 },
|
||||||
|
{ 0x80802048, 0x22407fbd, 0x008d0340, 0x40011687 },
|
||||||
|
{ 0x00802001, 0x228003fd, 0x00000000, 0x3f800000 },
|
12
drivers/video/Intel-2D/render/exa_wm_yuv_rgb.g7b
Normal file
12
drivers/video/Intel-2D/render/exa_wm_yuv_rgb.g7b
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
{ 0x00800040, 0x23007fbd, 0x008d0200, 0xbd808081 },
|
||||||
|
{ 0x00800041, 0x23007fbd, 0x008d0300, 0x3f94fdf4 },
|
||||||
|
{ 0x00800040, 0x22c07fbd, 0x008d01c0, 0xbf008084 },
|
||||||
|
{ 0x00800040, 0x23407fbd, 0x008d0240, 0xbf008084 },
|
||||||
|
{ 0x00800001, 0x240003bc, 0x008d0300, 0x00000000 },
|
||||||
|
{ 0x80800048, 0x21c07fbd, 0x008d02c0, 0x3fcc49ba },
|
||||||
|
{ 0x00800001, 0x240003bc, 0x008d0300, 0x00000000 },
|
||||||
|
{ 0x00800048, 0x24007fbc, 0x008d02c0, 0xbf5020c5 },
|
||||||
|
{ 0x80800048, 0x22007fbd, 0x008d0340, 0xbec8b439 },
|
||||||
|
{ 0x00800001, 0x240003bc, 0x008d0300, 0x00000000 },
|
||||||
|
{ 0x80800048, 0x22407fbd, 0x008d0340, 0x40011687 },
|
||||||
|
{ 0x00800001, 0x228003fd, 0x00000000, 0x3f800000 },
|
@ -12,14 +12,6 @@ static struct kgem_bo *mask_bo;
|
|||||||
|
|
||||||
static int mask_width, mask_height;
|
static int mask_width, mask_height;
|
||||||
|
|
||||||
static inline void delay(uint32_t time)
|
|
||||||
{
|
|
||||||
__asm__ __volatile__(
|
|
||||||
"int $0x40"
|
|
||||||
::"a"(5), "b"(time)
|
|
||||||
:"memory");
|
|
||||||
};
|
|
||||||
|
|
||||||
typedef struct __attribute__((packed))
|
typedef struct __attribute__((packed))
|
||||||
{
|
{
|
||||||
unsigned handle;
|
unsigned handle;
|
||||||
@ -135,9 +127,9 @@ int sna_accel_init(struct sna *sna)
|
|||||||
} else if (sna->info->gen >= 040) {
|
} else if (sna->info->gen >= 040) {
|
||||||
if (gen4_render_init(sna))
|
if (gen4_render_init(sna))
|
||||||
backend = "Broadwater/Crestline";
|
backend = "Broadwater/Crestline";
|
||||||
/* } else if (sna->info->gen >= 030) {
|
} else if (sna->info->gen >= 030) {
|
||||||
if (gen3_render_init(sna))
|
if (gen3_render_init(sna))
|
||||||
backend = "gen3"; */
|
backend = "gen3";
|
||||||
}
|
}
|
||||||
|
|
||||||
DBG(("%s(backend=%s, prefer_gpu=%x)\n",
|
DBG(("%s(backend=%s, prefer_gpu=%x)\n",
|
||||||
@ -188,7 +180,6 @@ int sna_init(uint32_t service)
|
|||||||
|
|
||||||
kgem_init(&sna->kgem, service, sna->PciInfo, sna->info->gen);
|
kgem_init(&sna->kgem, service, sna->PciInfo, sna->info->gen);
|
||||||
|
|
||||||
delay(10);
|
|
||||||
/*
|
/*
|
||||||
if (!xf86ReturnOptValBool(sna->Options,
|
if (!xf86ReturnOptValBool(sna->Options,
|
||||||
OPTION_RELAXED_FENCING,
|
OPTION_RELAXED_FENCING,
|
||||||
@ -466,7 +457,7 @@ int sna_create_mask()
|
|||||||
int width, height;
|
int width, height;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
printf("%s width %d height %d\n", __FUNCTION__, sna_fb.width, sna_fb.height);
|
// printf("%s width %d height %d\n", __FUNCTION__, sna_fb.width, sna_fb.height);
|
||||||
|
|
||||||
bo = kgem_create_2d(&sna_device->kgem, sna_fb.width, sna_fb.height,
|
bo = kgem_create_2d(&sna_device->kgem, sna_fb.width, sna_fb.height,
|
||||||
8,I915_TILING_NONE, CREATE_CPU_MAP);
|
8,I915_TILING_NONE, CREATE_CPU_MAP);
|
||||||
@ -495,17 +486,17 @@ err_1:
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
bool
|
bool
|
||||||
gen6_composite(struct sna *sna,
|
gen6_composite(struct sna *sna,
|
||||||
uint8_t op,
|
uint8_t op,
|
||||||
PixmapPtr src, struct kgem_bo *src_bo,
|
PixmapPtr src, struct kgem_bo *src_bo,
|
||||||
PixmapPtr mask,struct kgem_bo *mask_bo,
|
PixmapPtr mask,struct kgem_bo *mask_bo,
|
||||||
PixmapPtr dst, struct kgem_bo *dst_bo,
|
PixmapPtr dst, struct kgem_bo *dst_bo,
|
||||||
int32_t src_x, int32_t src_y,
|
int32_t src_x, int32_t src_y,
|
||||||
int32_t msk_x, int32_t msk_y,
|
int32_t msk_x, int32_t msk_y,
|
||||||
int32_t dst_x, int32_t dst_y,
|
int32_t dst_x, int32_t dst_y,
|
||||||
int32_t width, int32_t height,
|
int32_t width, int32_t height,
|
||||||
struct sna_composite_op *tmp);
|
struct sna_composite_op *tmp);
|
||||||
|
|
||||||
|
|
||||||
#define MAP(ptr) ((void*)((uintptr_t)(ptr) & ~3))
|
#define MAP(ptr) ((void*)((uintptr_t)(ptr) & ~3))
|
||||||
@ -568,26 +559,26 @@ int sna_blit_tex(bitmap_t *src_bitmap, int dst_x, int dst_y,
|
|||||||
src_bo = (struct kgem_bo*)src_bitmap->handle;
|
src_bo = (struct kgem_bo*)src_bitmap->handle;
|
||||||
|
|
||||||
|
|
||||||
if( sna_device->render.blit_tex(sna_device, PictOpSrc,
|
if( sna_device->render.blit_tex(sna_device, PictOpSrc,
|
||||||
&src, src_bo,
|
&src, src_bo,
|
||||||
&mask, mask_bo,
|
&mask, mask_bo,
|
||||||
&dst, sna_fb.fb_bo,
|
&dst, sna_fb.fb_bo,
|
||||||
src_x, src_y,
|
src_x, src_y,
|
||||||
dst_x, dst_y,
|
dst_x, dst_y,
|
||||||
winx+dst_x, winy+dst_y,
|
winx+dst_x, winy+dst_y,
|
||||||
w, h,
|
w, h,
|
||||||
&composite) )
|
&composite) )
|
||||||
{
|
{
|
||||||
struct sna_composite_rectangles r;
|
struct sna_composite_rectangles r;
|
||||||
|
|
||||||
r.src.x = src_x;
|
r.src.x = src_x;
|
||||||
r.src.y = src_y;
|
r.src.y = src_y;
|
||||||
r.mask.x = dst_x;
|
r.mask.x = dst_x;
|
||||||
r.mask.y = dst_y;
|
r.mask.y = dst_y;
|
||||||
r.dst.x = winx+dst_x;
|
r.dst.x = winx+dst_x;
|
||||||
r.dst.y = winy+dst_y;
|
r.dst.y = winy+dst_y;
|
||||||
r.width = w;
|
r.width = w;
|
||||||
r.height = h;
|
r.height = h;
|
||||||
|
|
||||||
composite.blt(sna_device, &composite, &r);
|
composite.blt(sna_device, &composite, &r);
|
||||||
composite.done(sna_device, &composite);
|
composite.done(sna_device, &composite);
|
||||||
@ -595,7 +586,7 @@ int sna_blit_tex(bitmap_t *src_bitmap, int dst_x, int dst_y,
|
|||||||
|
|
||||||
kgem_submit(&sna_device->kgem);
|
kgem_submit(&sna_device->kgem);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -135,6 +135,7 @@ typedef enum _PictFormatShort {
|
|||||||
} PictFormatShort;
|
} PictFormatShort;
|
||||||
|
|
||||||
#define PIXMAN_FORMAT_A(f) (((f) >> 12) & 0x0f)
|
#define PIXMAN_FORMAT_A(f) (((f) >> 12) & 0x0f)
|
||||||
|
#define PIXMAN_FORMAT_RGB(f) (((f) ) & 0xfff)
|
||||||
|
|
||||||
#define PICT_FORMAT_A(f) PIXMAN_FORMAT_A(f)
|
#define PICT_FORMAT_A(f) PIXMAN_FORMAT_A(f)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user