Browse Source

fglrx: Updated (8.32.5 -> 12.3)

user/chris/next/aufs
Nagy Karoly Gabriel 12 years ago committed by Alejandro Mery
parent
commit
e5d61b3019
  1. 19
      wip/fglrx/fglrx.conf
  2. 8
      wip/fglrx/fglrx.desc
  3. 845
      wip/fglrx/install/usr_include_amd_amdxvba.h.txt
  4. 54
      wip/fglrx/xf86-video-fglrx-12.2-TS_USEDFPU_fix.patch

19
wip/fglrx/fglrx.conf

@ -2,7 +2,7 @@
# This copyright note is auto-generated by ./scripts/Create-CopyPatch.
#
# Filename: package/.../fglrx/fglrx.conf
# Copyright (C) 2006 The OpenSDE Project
# Copyright (C) 2006 - 2012 The OpenSDE Project
#
# More information can be found in the files COPYING and README.
#
@ -24,10 +24,12 @@ fglrx_extract() {
commonsrc=common
case "$arch" in
x86-64) archsrc="arch/x86_64"
xorgsrc="x710_64a"
xorgsrc="xpic_64a"
atilib="lib64"
;;
*) archsrc="arch/$arch"
xorgsrc="x710"
xorgsrc="xpic"
atilib="lib"
;;
esac
@ -48,8 +50,8 @@ fglrx_install() {
#
mv -vf $archsrc/usr/sbin/* $root$sbindir/
mv -vf $archsrc/usr/X11R6/bin/* $x11_bindir/
mv -vf $archsrc/usr/X11R6/lib/modules/dri/* $xorg_libdir/modules/dri/
mv -vf $archsrc/usr/X11R6/lib/lib* $x11_libdir/
mv -vf $archsrc/usr/X11R6/$atilib/modules/dri/* $x11_libdir/dri/
mv -vf $archsrc/usr/X11R6/$atilib/lib* $x11_libdir/
# TODO: install during linux26
# arch/x86/lib/modules/fglrx/build_mod/libfglrx_ip.a.GCC4
@ -57,11 +59,14 @@ fglrx_install() {
# X.org
#
mv -vf $xorgsrc/usr/X11R6/lib/modules/linux/libfglrxdrm.so $xorg_libdir/modules/linux/
mv -vf $xorgsrc/usr/X11R6/lib/modules/drivers/fglrx_drv.so $xorg_libdir/modules/drivers/
mkdir -p $xorg_libdir/modules/{linux,drivers}
mv -vf $xorgsrc/usr/X11R6/$atilib/modules/linux/libfglrxdrm.so $xorg_libdir/modules/linux/
mv -vf $xorgsrc/usr/X11R6/$atilib/modules/drivers/fglrx_drv.so $xorg_libdir/modules/drivers/
# common
#
mkdir -p $root$datadir/icons
mkdir -p $root$mandir/man8
mv -vf common/etc/ati/* $root$sysconfdir/
mv -vf common/usr/include/GL/* $root$includedir/GL/
mv -vf common/usr/share/icons/* $root$datadir/icons/

8
wip/fglrx/fglrx.desc

@ -2,7 +2,7 @@
[COPY] This copyright note is auto-generated by ./scripts/Create-CopyPatch.
[COPY]
[COPY] Filename: package/.../fglrx/fglrx.desc
[COPY] Copyright (C) 2006 The OpenSDE Project
[COPY] Copyright (C) 2006 - 2012 The OpenSDE Project
[COPY]
[COPY] More information can be found in the files COPYING and README.
[COPY]
@ -30,8 +30,8 @@
[L] Free-to-use
[S] Stable
[V] 8.32.5
[P] 0 -----5---9 800.000
[V] 12.3
[P] X -----5---9 800.000
[D] 3418021199 ati-driver-installer-8.32.5-x86.x86_64.run http://www2.ati.com/drivers/linux/
[D] 2398767492 amd-driver-installer-12-3-x86.x86_64.run http://www2.ati.com/drivers/linux/

845
wip/fglrx/install/usr_include_amd_amdxvba.h.txt

@ -0,0 +1,845 @@
# --- SDE-COPYRIGHT-NOTE-BEGIN ---
# This copyright note is auto-generated by ./scripts/Create-CopyPatch.
#
# Filename: package/.../fglrx/install/usr_include_amd_amdxvba.h.txt
# Copyright (C) 2012 The OpenSDE Project
#
# More information can be found in the files COPYING and README.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 of the License. A copy of the
# GNU General Public License can be found in the file COPYING.
# --- SDE-COPYRIGHT-NOTE-END ---
/*******************************************************************************
*
* Copyright (c) 2011, Advanced Micro Devices, Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following are met:
*
* Neither the name of the copyright holder nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific, prior, written permission.
*
* You must reproduce the above copyright notice.
*
* You must include the following terms in your license and/or other
* materials provided with the software.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* Without limiting the foregoing, the software may implement third
* party technologies (e.g. third party libraries) for which you must
* obtain licenses from parties other than AMD. You agree that AMD has
* not obtained or conveyed to you, and that you shall be responsible for
* obtaining the rights to use and/or distribute the applicable underlying
* intellectual property rights related to the third party technologies.
* These third party technologies are not licensed hereunder.
*
* Without limiting the foregoing, for MPEG-2 products, the following
* additional notices are provided: For MPEG-2 Encoding Products (those
* that are "Sold" to end-users, directly or indirectly):
*
* NO LICENSE IS GRANTED HEREIN, BY IMPLICATION OR OTHERWISE,
* TO YOU OR YOUR CUSTOMERS TO USE MPEG-2 ENCODING PRODUCTS,
* MPEG-2 DISTRIBUTION ENCODING PRODUCTS, MPEG-2 ENCODING SOFTWARE,
* AND/OR MPEG-2 BUNDLED ENCODING SOFTWARE FOR ENCODING OR HAVING
* ENCODED ONE OR MORE MPEG-2 VIDEO EVENTS FOR RECORDING ON AN
* MPEG-2 PACKAGED MEDIUM FOR ANY USE OR DISTRIBUTION OTHER THAN
* PERSONAL USE OF LICENSEE'S CUSTOMER.
*
* For MPEG-2 Intermediate Products (those that are NOT "Sold" to
* end-users, directly or indirectly):
*
* NO LICENSE IS GRANTED HEREIN, BY IMPLICATION OR OTHERWISE,
* TO YOU OR YOUR CUSTOMERS TO USE MPEG-2 INTERMEDIATE PRODUCTS
* MANUFACTURED OR SOLD BY YOU.
*
* If you use the software (in whole or in part), you shall adhere to
* all applicable U.S., European, and other export laws, including but
* not limited to the U.S. Export Administration Regulations ("EAR"),
* (15 C.F.R. Sections 730 through 774), and E.U. Council Regulation (EC)
* No 1334/2000 of 22 June 2000. Further, pursuant to Section 740.6 of
* the EAR, you hereby certify that, except pursuant to a license granted
* by the United States Department of Commerce Bureau of Industry and
* Security or as otherwise permitted pursuant to a License Exception
* under the U.S. Export Administration Regulations ("EAR"), you will
* not (1) export, re-export or release to a national of a country in
* Country Groups D:1, E:1 or E:2 any restricted technology, software,
* or source code you receive hereunder, or (2) export to Country Groups
* D:1, E:1 or E:2 the direct product of such technology or software, if
* such foreign produced direct product is subject to national security
* controls as identified on the Commerce Control List (currently found
* in Supplement 1 to Part 774 of EAR). For the most current Country
* Group listings, or for additional information about the EAR or your
* obligations under those regulations, please refer to the U.S. Bureau
* of Industry and Security's website at http://www.bis.doc.gov/.
*
*******************************************************************************/
#ifndef _XVBA_H
#define _XVBA_H
// A minor revision change indicates a backward-compatible change; a major revision change indicates a backward-incompatible
#define XVBA_VERSION_MAJOR 0
#define XVBA_VERSION_MINOR 74
#define XVBA_VERSION ((XVBA_VERSION_MAJOR << 16) | XVBA_VERSION_MINOR)
#define NUM_OF_XVBA_DECODE_CAP 3
#define NUM_OF_XVBA_GET_SURFACE_TARGET 3
#ifdef __cplusplus
extern "C" {
#endif
typedef enum _XVBA_SURFACE_FLAG
{
XVBA_FRAME = 0,
XVBA_TOP_FIELD,
XVBA_BOTTOM_FIELD,
} XVBA_SURFACE_FLAG;
/* Four-character-code (FOURCC) */
#define XVBA_FOURCC(a,b,c,d)\
(((unsigned int)(a)<<0) |\
((unsigned int)(b)<<8) |\
((unsigned int)(c)<<16)|\
((unsigned int)(d)<<24))
typedef enum _XVBA_SURFACE_FORMAT
{
XVBA_NV12 = XVBA_FOURCC('N','V','1','2'), /* 12bit Y/CbCr 4:2:0 planar */
XVBA_YUY2 = XVBA_FOURCC('Y','U','Y','2'), /* 16bit YUV 4:2:2 */
XVBA_ARGB = XVBA_FOURCC('A','R','G','B'), /* 32bit ARGB-8-8-8-8 */
XVBA_AYUV = XVBA_FOURCC('A','Y','U','V'), /* 32bit AYUV-8-8-8-8 */
XVBA_YV12 = XVBA_FOURCC('Y','V','1','2'), /* 12bit Y/V/U 4:2:0 planar */
} XVBA_SURFACE_FORMAT;
typedef struct _XVBA_GetSurface_Target
{
unsigned int size; ///< structure size
XVBA_SURFACE_FORMAT surfaceType;
XVBA_SURFACE_FLAG flag;
} XVBA_GetSurface_Target;
/**
* XVBA Query Extension
*/
Bool
XVBAQueryExtension
(
Display *display,
int *version
);
/******************************************************************/
/* XVBA Context */
/******************************************************************/
/**
* XVBA Context Create
*/
typedef struct
{
unsigned int size; ///< structure size
Display *display;
Drawable draw;
} XVBA_Create_Context_Input;
typedef struct
{
unsigned int size; ///< structure size
void *context;
} XVBA_Create_Context_Output;
Status
XVBACreateContext
(
XVBA_Create_Context_Input *create_context_input,
XVBA_Create_Context_Output *create_context_output
);
/**
* XVBA Context Destroy
*/
Status
XVBADestroyContext
(
void *context
);
/******************************************************************/
/* XVBA Sessions */
/******************************************************************/
/**
* XVBA Context Query Session Info
*/
typedef struct
{
unsigned int size; ///< structure size
void *context;
} XVBA_GetSessionInfo_Input;
typedef struct
{
unsigned int size; ///< structure size
unsigned int getcapdecode_output_size; ///< 0 = Decode not supported, NZ = Decode session is supported and the value is used for XVBAGetCapDecode output struct size
unsigned int xvba_gsio_reserved_0;
unsigned int xvba_gsio_reserved_1;
} XVBA_GetSessionInfo_Output;
Status
XVBAGetSessionInfo
(
XVBA_GetSessionInfo_Input *get_session_info_input,
XVBA_GetSessionInfo_Output *get_session_info_output
);
/******************************************************************/
/* XVBA decode errors */
/******************************************************************/
typedef enum
{
XVBA_DECODE_NO_ERROR = 0,
XVBA_DECODE_BAD_PICTURE, ///< the entire picture is corrupted . All MBs are invalid
XVBA_DECODE_BAD_SLICE, ///< part of the picture, slice, wasn.t decoded properly . all MBs in this slice are bad
XVBA_DECODE_BAD_MB ///< some MBs are not decoded properly
} XVBA_DECODE_ERROR;
typedef struct
{
unsigned int size; ///< structure size
XVBA_DECODE_ERROR type;
unsigned int num_of_bad_mbs; ///< number of marcoblocks that were not properly decoded
} XVBADecodeError;
/******************************************************************/
/* XVBA Surface */
/******************************************************************/
/**
* XVBA Surface create
*/
typedef struct
{
unsigned int size;
void *session;
unsigned int width;
unsigned int height;
XVBA_SURFACE_FORMAT surface_type;
} XVBA_Create_Surface_Input;
typedef struct
{
unsigned int size;
void *surface; ///< Pointer to XVBASurface
} XVBA_Create_Surface_Output;
Status
XVBACreateSurface(
XVBA_Create_Surface_Input *create_surface_input,
XVBA_Create_Surface_Output *create_surface_output
);
/**
* XVBA Surface destroy
*/
Status
XVBADestroySurface(
void *surface
);
/**
* Synchronization query_status_flags
*/
typedef enum
{
XVBA_GET_SURFACE_STATUS = 1, ///< get surface status; is surface still used by GPU
XVBA_GET_DECODE_ERRORS ///< get decode errors for target surface
} XVBA_QUERY_STATUS;
/**
* Synchronization status flags
*/
#define XVBA_STILL_PENDING 0x00000001 ///< surface is still used by HW
#define XVBA_COMPLETED 0x00000002 ///< HW completed job on this surface
#define XVBA_NO_ERROR_DECODE 0x00000004 ///< no decode errors
#define XVBA_ERROR_DECODE 0x00000008 ///< decode errors for queried surface
/**
* XVBA Surface synchronization
*/
typedef struct
{
unsigned int size;
void *session;
void *surface;
XVBA_QUERY_STATUS query_status;
} XVBA_Surface_Sync_Input;
typedef struct
{
unsigned int size;
unsigned int status_flags;
XVBADecodeError decode_error;
} XVBA_Surface_Sync_Output;
Status
XVBASyncSurface (
XVBA_Surface_Sync_Input *surface_sync_input,
XVBA_Surface_Sync_Output *surface_sync_output
);
// Conversion from OGL to XVBA surface
typedef struct
{
unsigned int size;
void *session;
void *glcontext;
unsigned int gltexture;
} XVBA_Create_GLShared_Surface_Input;
typedef struct
{
unsigned int size;
void *surface; // Pointer to XVBASurface
} XVBA_Create_GLShared_Surface_Output;
Status
XVBACreateGLSharedSurface (
XVBA_Create_GLShared_Surface_Input *create_glshared_surface_input,
XVBA_Create_GLShared_Surface_Output *create_glshared_surface_output
);
/**
* XVBA Get Surface
*/
typedef struct {
unsigned int size; ///< structure size
void *session; // XVBA session
void *src_surface; // source XVBA surface
void *target_buffer; // application supplied system memory buffer
unsigned int target_pitch; // pitch of the destination buffer
unsigned int target_width; // width of the destination buffer
unsigned int target_height; // height of the destination buffer
XVBA_GetSurface_Target target_parameter; // destination buffer format and flag
unsigned int reserved [4]; // reserved
} XVBA_Get_Surface_Input;
Status
XVBAGetSurface (
XVBA_Get_Surface_Input *get_surface_input
);
/**
* XVBA Transfer Surface
*/
typedef struct {
unsigned int size; ///< structure size
void *session; // XVBA session
void *src_surface; // source XVBA surface
void *target_surface; // destination XVBA surface
XVBA_SURFACE_FLAG flag; // top, bottom or frame
unsigned int reserved [4]; // reserved
} XVBA_Transfer_Surface_Input;
Status
XVBATransferSurface (
XVBA_Transfer_Surface_Input *transfer_surface_input
);
/******************************************************************/
/* XVBA Buffers */
/******************************************************************/
typedef enum
{
XVBA_NONE = 0,
XVBA_PICTURE_DESCRIPTION_BUFFER,
XVBA_DATA_BUFFER,
XVBA_DATA_CTRL_BUFFER,
XVBA_QM_BUFFER
} XVBA_BUFFER;
typedef struct
{
unsigned int size; ///< structure size
XVBA_BUFFER buffer_type;
unsigned int buffer_size; ///< allocated size of data in bytes
void *bufferXVBA; ///< pointer to XVBA decode data buffer
unsigned int data_size_in_buffer;///< Used in Decode call only
int data_offset; ///< Used in Decode call only
void *appPrivate; ///< used only by application to store pointer to its private data.
} XVBABufferDescriptor;
/**
* XVBA Decode buffers create
*/
typedef struct
{
unsigned int size; ///< structure size
void *session;
XVBA_BUFFER buffer_type;
unsigned int num_of_buffers;
} XVBA_Create_DecodeBuff_Input;
typedef struct
{
unsigned int size; ///< structure size
unsigned int num_of_buffers_in_list;
XVBABufferDescriptor *buffer_list;
} XVBA_Create_DecodeBuff_Output;
Status
XVBACreateDecodeBuffers (
XVBA_Create_DecodeBuff_Input *create_decodebuff_input,
XVBA_Create_DecodeBuff_Output *create_decodebuff_output
);
/**
* XVBA Decode buffers destroy
*/
typedef struct
{
unsigned int size;
void *session;
unsigned int num_of_buffers_in_list;
XVBABufferDescriptor *buffer_list;
} XVBA_Destroy_Decode_Buffers_Input;
Status
XVBADestroyDecodeBuffers (
XVBA_Destroy_Decode_Buffers_Input *buffer_list
);
/******************************************************************/
/* XVBA Decode session (XVBADecodeCap) */
/******************************************************************/
/**
* XVBADecodeCap flags
*/
typedef enum
{
XVBA_NOFLAG = 0,
XVBA_H264_BASELINE,
XVBA_H264_MAIN,
XVBA_H264_HIGH,
XVBA_VC1_SIMPLE,
XVBA_VC1_MAIN,
XVBA_VC1_ADVANCED,
} XVBA_DECODE_FLAGS;
/**
* XVBADecodeCap capability_id
*/
typedef enum
{
XVBA_H264 = 0x100,///< bitstream level of acceleration
XVBA_VC1, ///< bitstream level of acceleration
XVBA_MPEG2_IDCT, ///< iDCT and motion compensation level of acceleration
XVBA_MPEG2_VLD ///< bitstream level of acceleration
} XVBA_CAPABILITY_ID;
typedef struct {
unsigned int size; ///< structure size
XVBA_CAPABILITY_ID capability_id; ///< Unique descriptor for decode capability
XVBA_DECODE_FLAGS flags; ///< defines for additional information about capability
XVBA_SURFACE_FORMAT surface_type; ///< Surface type: fourcc YUV or RGB supported with this capability.
} XVBADecodeCap;
/**
* XVBADecodeCap Query Info
*/
typedef struct {
unsigned int size; ///< structure size
void *context;
} XVBA_GetCapDecode_Input;
typedef struct {
unsigned int size; ///< structure size
unsigned int num_of_decodecaps;
XVBADecodeCap decode_caps_list[NUM_OF_XVBA_DECODE_CAP];
unsigned int num_of_getsurface_target;
XVBA_GetSurface_Target getsurface_target_list[NUM_OF_XVBA_GET_SURFACE_TARGET];
} XVBA_GetCapDecode_Output;
Status
XVBAGetCapDecode (
XVBA_GetCapDecode_Input *decodecap_list_input,
XVBA_GetCapDecode_Output *decodecap_list_output
);
/**
* XVBADecodeCap create
*/
typedef struct {
unsigned int size; ///< structure size
unsigned int width; ///< decoded video width
unsigned int height; ///< decoded video height
void *context;
XVBADecodeCap *decode_cap; ///< capability from the driver reported list
} XVBA_Create_Decode_Session_Input;
typedef struct {
unsigned int size; ///< structure size
void *session; ///< Pointer to the created decode session
} XVBA_Create_Decode_Session_Output;
Status
XVBACreateDecode (
XVBA_Create_Decode_Session_Input *create_decode_session_input,
XVBA_Create_Decode_Session_Output *create_decode_session_output
);
/**
* XVBADecodeCap destroy
*/
Status
XVBADestroyDecode (
void *session
);
/******************************************************************/
/* XVBA Decode API */
/******************************************************************/
#define XVBA_PREDICTION_FIELD 0x01
#define XVBA_PREDICTION_FRAME 0x02
#define XVBA_PREDICTION_DUAL_PRIME 0x03
#define XVBA_PREDICTION_16x8 0x02
#define XVBA_SECOND_FIELD 0x00000004
/**
* XVBA inits picture decoding
*/
typedef struct
{
unsigned int size; ///< structure size
void *session; ///< pointer to decode session
void *target_surface; ///< decode target
} XVBA_Decode_Picture_Start_Input;
Status
XVBAStartDecodePicture (
XVBA_Decode_Picture_Start_Input *decode_picture_start
);
/**
* XVBA picture decode
*/
typedef struct
{
unsigned int size; ///< structure size
void *session; ///< pointer to decode session
unsigned int num_of_buffers_in_list; ///< number of decode compressed data buffers
XVBABufferDescriptor **buffer_list; ///< array of XVBABufferDescriptor structures
} XVBA_Decode_Picture_Input;
Status
XVBADecodePicture (
XVBA_Decode_Picture_Input *decode_picture_input
);
/**
* XVBA end picture decode
*/
typedef struct
{
unsigned int size;
void *session;
} XVBA_Decode_Picture_End_Input;
Status
XVBAEndDecodePicture (
XVBA_Decode_Picture_End_Input *decode_picture_end_input
);
/******************************************************************/
/* XVBA Decode Data buffers */
/******************************************************************/
/*
* XVBA compressed data type: XVBA_PICTURE_DESCRIPTOR_BUFFER
*/
typedef struct
{
//VC-1, MPEG2 bitstream references
void *past_surface;
void *future_surface;
unsigned int profile;
unsigned int level;
unsigned int width_in_mb;
unsigned int height_in_mb;
unsigned int picture_structure;
union {
struct {
unsigned int residual_colour_transform_flag : 1;
unsigned int delta_pic_always_zero_flag : 1;
unsigned int gaps_in_frame_num_value_allowed_flag: 1;
unsigned int frame_mbs_only_flag : 1;
unsigned int mb_adaptive_frame_field_flag : 1;
unsigned int direct_8x8_inference_flag : 1;
unsigned int xvba_avc_sps_reserved : 26;
} avc;
struct {
unsigned int postprocflag : 1;
unsigned int pulldown : 1;
unsigned int interlace : 1;
unsigned int tfcntrflag : 1;
unsigned int finterpflag : 1;
unsigned int reserved : 1;
unsigned int psf : 1;
unsigned int second_field : 1;
unsigned int xvba_vc1_sps_reserved : 24;
} vc1;
unsigned int flags;
} sps_info;
unsigned char chroma_format;
unsigned char avc_bit_depth_luma_minus8;
unsigned char avc_bit_depth_chroma_minus8;
unsigned char avc_log2_max_frame_num_minus4;
unsigned char avc_pic_order_cnt_type;
unsigned char avc_log2_max_pic_order_cnt_lsb_minus4;
unsigned char avc_num_ref_frames;
unsigned char avc_reserved_8bit;
union {
struct {
unsigned int entropy_coding_mode_flag : 1;
unsigned int pic_order_present_flag : 1;
unsigned int weighted_pred_flag : 1;
unsigned int weighted_bipred_idc : 2;
unsigned int deblocking_filter_control_present_flag : 1;
unsigned int constrained_intra_pred_flag : 1;
unsigned int redundant_pic_cnt_present_flag : 1;
unsigned int transform_8x8_mode_flag : 1;
unsigned int xvba_avc_pps_reserved : 23;
} avc;
struct {
unsigned int panscan_flag : 1;
unsigned int refdist_flag : 1;
unsigned int loopfilter : 1;
unsigned int fastuvmc : 1;
unsigned int extended_mv : 1;
unsigned int dquant : 2;
unsigned int vstransform : 1;
unsigned int overlap : 1;
unsigned int quantizer : 2;
unsigned int extended_dmv : 1;
unsigned int maxbframes : 3;
unsigned int rangered : 1;
unsigned int syncmarker : 1;
unsigned int multires : 1;
unsigned int reserved : 2;
unsigned int range_mapy_flag : 1;
unsigned int range_mapy : 3;
unsigned int range_mapuv_flag : 1;
unsigned int range_mapuv : 3;
unsigned int xvba_vc1_pps_reserved: 4;
} vc1;
unsigned int flags;
} pps_info;
unsigned char avc_num_slice_groups_minus1;
unsigned char avc_slice_group_map_type;
unsigned char avc_num_ref_idx_l0_active_minus1;
unsigned char avc_num_ref_idx_l1_active_minus1;
char avc_pic_init_qp_minus26;
char avc_pic_init_qs_minus26;
char avc_chroma_qp_index_offset;
char avc_second_chroma_qp_index_offset;
unsigned short avc_slice_group_change_rate_minus1;
unsigned short avc_reserved_16bit;
unsigned int avc_frame_num;
unsigned int avc_frame_num_list[16]; ///< bit 31 is used to indicate long/short term
int avc_curr_field_order_cnt_list[2];
int avc_field_order_cnt_list[16][2];
unsigned char avc_slice_group_map[810];
int avc_intra_flag;
int avc_reference;
int xvba_reserved[14];
} XVBAPictureDescriptor;
/**
* XVBA Compressed data type: XVBA_DATA_CTRL_BUFFER
* (H264 and VC1 only)
*/
typedef struct
{
unsigned int SliceBitsInBuffer;
unsigned int SliceDataLocation;
unsigned int SliceBytesInBuffer;
unsigned int reserved[5];
} XVBADataCtrl;
/**
* XVBA Compressed data type: XVBA_DATA_BUFFER
* (MPEG2 iDCT level decode only)
*/
typedef struct
{
struct
{
unsigned short index: 15; ///< contains rates scan index of the coefficient within the block.
///< cannot be greater or equal to (block width * block height)
unsigned short endofblock: 1;
} idx;
short coeff; ///< value of the coefficient in the block; mismatch control and
///< clipping is host.s responsibility
} XVBAMpeg2Residual;
typedef struct
{
short horizontal;
short vertical;
} XVBAMpeg2MV;
typedef struct
{
unsigned short mb_address;
struct
{
unsigned short mb_intra : 1;
unsigned short motion_fw : 1;
unsigned short motion_back : 1;
unsigned short reserved2 : 2;
unsigned short field_residual : 1;
unsigned short mb_scan_mode : 2;
unsigned short motion_type : 2;
unsigned short reserved1 : 2;
unsigned short motion_vector_sel0 : 1;
unsigned short motion_vector_sel1 : 1;
unsigned short motion_vector_sel2 : 1;
unsigned short motion_vector_sel3 : 1;
} mpeg2data1;
struct
{
unsigned int mb_data_resid_location : 24;
unsigned int skipped_mb : 8;
} mpeg2data2;
unsigned short pattern_code;
unsigned char numcoeff[6];
} XVBAMpeg2IntraMB;
typedef struct
{
unsigned short mb_address;
struct
{
unsigned short mb_intra : 1;
unsigned short motion_fw : 1;
unsigned short motion_back : 1;
unsigned short reserved2 : 2;
unsigned short field_residual : 1;
unsigned short mb_scan_mode : 2;
unsigned short motion_type : 2;
unsigned short reserved1 : 2;
unsigned short motion_vector_sel0 : 1;
unsigned short motion_vector_sel1 : 1;
unsigned short motion_vector_sel2 : 1;
unsigned short motion_vector_sel3 : 1;
} mpeg2data1;
struct
{
unsigned int mb_data_resid_location : 24;
unsigned int skipped_mb : 8;
} mpeg2data2;
unsigned short pattern_code;
unsigned char numcoeff[6];
XVBAMpeg2MV motion_vector[4];
} XVBAMpeg2NonIntraMB;
/**
* XVBA compressed data type: XVBA_QM_BUFFER
* (H264 and VC1 only)
*/
typedef struct
{
unsigned char bScalingLists4x4[6][16];
unsigned char bScalingLists8x8[2][64];
} XVBAQuantMatrixAvc;
#ifdef __cplusplus
}
#endif
#endif //_XVBA_H

54
wip/fglrx/xf86-video-fglrx-12.2-TS_USEDFPU_fix.patch

@ -0,0 +1,54 @@
# --- SDE-COPYRIGHT-NOTE-BEGIN ---
# This copyright note is auto-generated by ./scripts/Create-CopyPatch.
#
# Filename: package/.../fglrx/xf86-video-fglrx-12.2-TS_USEDFPU_fix.patch
# Copyright (C) 2012 The OpenSDE Project
#
# More information can be found in the files COPYING and README.
#
# This patch file is dual-licensed. It is available under the license the
# patched project is licensed under, as long as it is an OpenSource license
# as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms
# of the GNU General Public License as published by the Free Software
# Foundation; either version 2 of the License, or (at your option) any later
# version.
# --- SDE-COPYRIGHT-NOTE-END ---
http://phoronix.com/forums/showthread.php?68922-Patch-to-compile-fgrlx-module-on-Linux-3-3-rc4-with-x86-32-bit-arch
fixed fgrlx compilation error on 32-bit x86 arch with kernel 3.3-rc4 due to commit:
https://github.com/torvalds/linux/commit/f94edacf998516ac9d849f7bc6949a703977a7f3
Signed-off-by: Gianluca Gennari <gennarone@gmail.com>
---
firegl_public.c | 9 +++++++++
1 files changed, 9 insertions(+), 0 deletions(-)
diff --git a/firegl_public.c b/firegl_public.c
index 6e0aa82..5010b91 100644
--- fglrx/common/lib/modules/fglrx/build_mod/firegl_public.c
+++ fglrx/common/lib/modules/fglrx/build_mod/firegl_public.c
@@ -5797,6 +5797,14 @@ void ATI_API_CALL KCL_fpu_begin(void)
#ifdef CONFIG_X86_64
kernel_fpu_begin();
#else
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)
+ struct task_struct *tsk = current;
+ preempt_disable();
+ if (tsk->thread.has_fpu)
+ __save_init_fpu(tsk);
+ else
+ clts();
+#else
struct thread_info *cur_task = current_thread_info();
preempt_disable();
if (cur_task->status & TS_USEDFPU)
@@ -5804,6 +5812,7 @@ void ATI_API_CALL KCL_fpu_begin(void)
else
clts();
#endif
+#endif
}
/** \brief End of using FPU
--
1.7.5.4
Loading…
Cancel
Save