Align tiled pixmap height so we don't address beyond the end of our buffers.
This commit is contained in:
parent
62494407e5
commit
222b52ef16
|
|
@ -619,6 +619,8 @@ typedef struct _I830Rec {
|
|||
#define I830PTR(p) ((I830Ptr)((p)->driverPrivate))
|
||||
|
||||
#define ARRAY_SIZE(x) (sizeof(x) / sizeof(x[0]))
|
||||
#define ALIGN(i,m) (((i) + (m) - 1) & ~((m) - 1))
|
||||
#define MIN(a,b) ((a) < (b) ? (a) : (b))
|
||||
|
||||
#define I830_SELECT_FRONT 0
|
||||
#define I830_SELECT_BACK 1
|
||||
|
|
|
|||
|
|
@ -88,8 +88,6 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|||
#include "i810_reg.h"
|
||||
#include "i915_drm.h"
|
||||
|
||||
#define ALIGN(i,m) (((i) + (m) - 1) & ~((m) - 1))
|
||||
|
||||
/* Our hardware status area is just a single page */
|
||||
#define HWSTATUS_PAGE_SIZE GTT_PAGE_SIZE
|
||||
#define PWRCTX_SIZE GTT_PAGE_SIZE
|
||||
|
|
|
|||
|
|
@ -615,6 +615,13 @@ i830_uxa_create_pixmap (ScreenPtr screen, int w, int h, int depth, unsigned usag
|
|||
if (tiling == I915_TILING_NONE) {
|
||||
size = stride * h;
|
||||
} else {
|
||||
int aligned_h = h;
|
||||
if (tiling == I915_TILING_X)
|
||||
aligned_h = ALIGN(h, 8);
|
||||
else
|
||||
aligned_h = ALIGN(h, 16);
|
||||
assert(aligned_h >= h);
|
||||
|
||||
stride = i830_get_fence_pitch(i830, stride, tiling);
|
||||
/* Round the object up to the size of the fence it will live in
|
||||
* if necessary. We could potentially make the kernel allocate
|
||||
|
|
@ -622,8 +629,8 @@ i830_uxa_create_pixmap (ScreenPtr screen, int w, int h, int depth, unsigned usag
|
|||
* but this is easier and also keeps us out of trouble (as much)
|
||||
* with drm_intel_bufmgr_check_aperture().
|
||||
*/
|
||||
size = i830_get_fence_size(i830, stride * h);
|
||||
assert(size >= stride * h);
|
||||
size = i830_get_fence_size(i830, stride * aligned_h);
|
||||
assert(size >= stride * aligned_h);
|
||||
}
|
||||
|
||||
/* Fail very large allocations on 32-bit systems. Large BOs will
|
||||
|
|
|
|||
|
|
@ -251,8 +251,6 @@ i965_check_composite(int op, PicturePtr pSrcPicture, PicturePtr pMaskPicture,
|
|||
|
||||
}
|
||||
|
||||
#define ALIGN(i,m) (((i) + (m) - 1) & ~((m) - 1))
|
||||
#define MIN(a,b) ((a) < (b) ? (a) : (b))
|
||||
#define BRW_GRF_BLOCKS(nreg) ((nreg + 15) / 16 - 1)
|
||||
|
||||
/* Set up a default static partitioning of the URB, which is supposed to
|
||||
|
|
|
|||
|
|
@ -131,9 +131,6 @@ static const uint32_t ps_kernel_planar_static_gen5[][4] = {
|
|||
#include "exa_wm_write.g4b.gen5"
|
||||
};
|
||||
|
||||
#define ALIGN(i,m) (((i) + (m) - 1) & ~((m) - 1))
|
||||
#define MIN(a,b) ((a) < (b) ? (a) : (b))
|
||||
|
||||
static uint32_t float_to_uint (float f) {
|
||||
union {uint32_t i; float f;} x;
|
||||
x.f = f;
|
||||
|
|
|
|||
Loading…
Reference in New Issue