Changeset 284

Show
Ignore:
Timestamp:
01/14/07 00:13:14 (2 years ago)
Author:
astrange
Message:

Add modified Deployment build style with debug symbols.
Prefetch chroma in sse2 4:2:2 conversion (11% -> 9% in Shark, about the same as GL driver overhead)

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/ColorConversions.c

    r282 r284  
    177177         
    178178        for (y = 0; y < halfheight; y ++) { 
    179                 vSInt8 *ov = (vSInt8 *)o, *ov2 = (vSInt8 *)(o + outRB), *yv2 = (vSInt8 *)(yc + rY); 
    180                 vSInt8 *yv = (vSInt8 *)yc; 
     179                __m128i *ov = (__m128i *)o, *ov2 = (__m128i *)(o + outRB), *yv2 = (__m128i *)(yc + rY); 
     180                __m128i *yv = (__m128i *)yc; 
     181                long long *uv = (long long *)uc, *vv = (long long*)vc; 
    181182                 
    182183                for (x = 0,x2 = 0; x < vWidth; x++, x2 += 2) { 
     
    186187                         * 2: unrolling loops can be very bad. i think we could have done it here, but x86 is so OoO it doesn't really matter */ 
    187188                        __builtin_prefetch(&yv[x+1], 0, 0); __builtin_prefetch(&yv2[x+1], 0, 0); // prefetch next y vectors, throw it out of cache immediately after use 
    188                         vSInt8  tmp_y = yv[x], tmp_y2 = yv2[x], 
    189                         chroma = _mm_unpacklo_epi8(_mm_loadl_epi64((__m128i*)&uc[8*x]), _mm_loadl_epi64((__m128i*)&vc[8*x])); 
    190                         vSInt8 p1 = _mm_unpacklo_epi8(chroma, tmp_y), p2 = _mm_unpackhi_epi8(chroma, tmp_y), 
    191                                 p3 = _mm_unpacklo_epi8(chroma, tmp_y2), p4 = _mm_unpackhi_epi8(chroma, tmp_y2); 
     189                        __builtin_prefetch(&uv[x+1], 0, 0); __builtin_prefetch(&vv[x+1], 0, 0); // and chroma too 
     190                        __m128i tmp_y = yv[x],  
     191                                tmp_y2 = yv2[x], 
     192                                chroma = _mm_unpacklo_epi8(_mm_loadl_epi64((__m128i*)&uv[x]), _mm_loadl_epi64((__m128i*)&vv[x])); 
     193                        __m128i p1 = _mm_unpacklo_epi8(chroma, tmp_y), 
     194                                p2 = _mm_unpackhi_epi8(chroma, tmp_y), 
     195                                p3 = _mm_unpacklo_epi8(chroma, tmp_y2), 
     196                                p4 = _mm_unpackhi_epi8(chroma, tmp_y2); 
    192197                        ov[x2] = p1; 
    193198                        ov[x2+1] = p2; 
     
    196201                } 
    197202                 
    198                 if (width % 16) { //spill to scalar for the end if the row isn't a multiple of 16 
     203                if (__builtin_expect(width % 16, FALSE)) { //spill to scalar for the end if the row isn't a multiple of 16 
    199204                        UInt8 *o2 = o + outRB, *yc2 = yc + rY; 
    200205                        for (x = vWidth * 16, x2 = x*2; x < width; x += 2, x2 += 4) { 
  • trunk/Perian.xcodeproj/project.pbxproj

    r279 r284  
    19481948                        name = Default; 
    19491949                }; 
     1950                3D4BBE460B59EE0A000EDE04 /* Deployment+Debug */ = { 
     1951                        isa = XCBuildConfiguration; 
     1952                        buildSettings = { 
     1953                                COPY_PHASE_STRIP = YES; 
     1954                                GCC_ENABLE_FIX_AND_CONTINUE = NO; 
     1955                                GCC_GENERATE_DEBUGGING_SYMBOLS = NO; 
     1956                                PRODUCT_NAME = "Version Macros and Static Libraries"; 
     1957                                ZERO_LINK = NO; 
     1958                        }; 
     1959                        name = "Deployment+Debug"; 
     1960                }; 
     1961                3D4BBE470B59EE0A000EDE04 /* Deployment+Debug */ = { 
     1962                        isa = XCBuildConfiguration; 
     1963                        buildSettings = { 
     1964                                ARCHS = ( 
     1965                                        ppc, 
     1966                                        i386, 
     1967                                ); 
     1968                                COPY_PHASE_STRIP = YES; 
     1969                                GCC_ENABLE_FIX_AND_CONTINUE = NO; 
     1970                                GCC_GENERATE_DEBUGGING_SYMBOLS = NO; 
     1971                                GCC_MODEL_TUNING = G5; 
     1972                                GCC_OPTIMIZATION_LEVEL = s; 
     1973                                INSTALL_PATH = /usr/local/lib; 
     1974                                PREBINDING = NO; 
     1975                                PRODUCT_NAME = ebml; 
     1976                                USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/libebml"; 
     1977                                ZERO_LINK = NO; 
     1978                        }; 
     1979                        name = "Deployment+Debug"; 
     1980                }; 
     1981                3D4BBE480B59EE0A000EDE04 /* Deployment+Debug */ = { 
     1982                        isa = XCBuildConfiguration; 
     1983                        buildSettings = { 
     1984                                ARCHS = ( 
     1985                                        ppc, 
     1986                                        i386, 
     1987                                ); 
     1988                                COPY_PHASE_STRIP = YES; 
     1989                                GCC_ENABLE_FIX_AND_CONTINUE = NO; 
     1990                                GCC_GENERATE_DEBUGGING_SYMBOLS = NO; 
     1991                                GCC_MODEL_TUNING = G5; 
     1992                                INSTALL_PATH = /usr/local/lib; 
     1993                                PREBINDING = NO; 
     1994                                PRODUCT_NAME = matroska; 
     1995                                USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/libmatroska $(SRCROOT)/libebml"; 
     1996                                ZERO_LINK = NO; 
     1997                        }; 
     1998                        name = "Deployment+Debug"; 
     1999                }; 
     2000                3D4BBE490B59EE0A000EDE04 /* Deployment+Debug */ = { 
     2001                        isa = XCBuildConfiguration; 
     2002                        buildSettings = { 
     2003                                ARCHS = ( 
     2004                                        i386, 
     2005                                        ppc, 
     2006                                ); 
     2007                                DEAD_CODE_STRIPPING = YES; 
     2008                                EXPORTED_SYMBOLS_FILE = "$(SOURCE_ROOT)/exportedSymbols"; 
     2009                                FRAMEWORK_SEARCH_PATHS = ( 
     2010                                        "$(inherited)", 
     2011                                        "$(FRAMEWORK_SEARCH_PATHS_QUOTED_1)", 
     2012                                        "$(FRAMEWORK_SEARCH_PATHS_QUOTED_2)", 
     2013                                ); 
     2014                                FRAMEWORK_SEARCH_PATHS_QUOTED_1 = "\"$(SYSTEM_DEVELOPER_DIR)/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks\""; 
     2015                                FRAMEWORK_SEARCH_PATHS_QUOTED_2 = "\"$(SYSTEM_DEVELOPER_DIR)/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks\""; 
     2016                                GCC_ALTIVEC_EXTENSIONS = YES; 
     2017                                GCC_ENABLE_FIX_AND_CONTINUE = NO; 
     2018                                GCC_PRECOMPILE_PREFIX_HEADER = YES; 
     2019                                GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/Carbon.framework/Headers/Carbon.h"; 
     2020                                HEADER_SEARCH_PATHS = ( 
     2021                                        ffmpeg/libavcodec, 
     2022                                        ffmpeg/libavutil, 
     2023                                        ffmpeg/libpostproc, 
     2024                                        ffmpeg/libavformat, 
     2025                                        libebml, 
     2026                                        libmatroska, 
     2027                                ); 
     2028                                INFOPLIST_FILE = "Perian-Info.plist"; 
     2029                                INSTALL_PATH = "$(HOME)/Library/QuickTime"; 
     2030                                LIBRARY_SEARCH_PATHS = ( 
     2031                                        $SYMROOT/Universal, 
     2032                                        "$(LIBRARY_SEARCH_PATHS_QUOTED_1)", 
     2033                                ); 
     2034                                LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(SRCROOT)/build/Universal\""; 
     2035                                OTHER_LDFLAGS = ( 
     2036                                        "-framework", 
     2037                                        Carbon, 
     2038                                        "-read_only_relocs", 
     2039                                        suppress, 
     2040                                ); 
     2041                                OTHER_REZFLAGS = "-rd -d ppc_$(ppc) -d i386_$(i386) -d TARGET_REZ_CARBON_MACHO=1"; 
     2042                                PREBINDING = NO; 
     2043                                PRESERVE_DEAD_CODE_INITS_AND_TERMS = YES; 
     2044                                PRODUCT_NAME = Perian; 
     2045                                SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; 
     2046                                WRAPPER_EXTENSION = component; 
     2047                                ZERO_LINK = NO; 
     2048                        }; 
     2049                        name = "Deployment+Debug"; 
     2050                }; 
     2051                3D4BBE4A0B59EE0A000EDE04 /* Deployment+Debug */ = { 
     2052                        isa = XCBuildConfiguration; 
     2053                        buildSettings = { 
     2054                                COPY_PHASE_STRIP = YES; 
     2055                                GCC_ENABLE_FIX_AND_CONTINUE = NO; 
     2056                                GCC_GENERATE_DEBUGGING_SYMBOLS = NO; 
     2057                                PRODUCT_NAME = "Debug In QuickTime Player"; 
     2058                                ZERO_LINK = NO; 
     2059                        }; 
     2060                        name = "Deployment+Debug"; 
     2061                }; 
     2062                3D4BBE4B0B59EE0A000EDE04 /* Deployment+Debug */ = { 
     2063                        isa = XCBuildConfiguration; 
     2064                        buildSettings = { 
     2065                                COPY_PHASE_STRIP = YES; 
     2066                                GCC_ENABLE_FIX_AND_CONTINUE = NO; 
     2067                                GCC_GENERATE_DEBUGGING_SYMBOLS = NO; 
     2068                                PRODUCT_NAME = "Setup Build Directories"; 
     2069                                ZERO_LINK = NO; 
     2070                        }; 
     2071                        name = "Deployment+Debug"; 
     2072                }; 
     2073                3D4BBE4C0B59EE0A000EDE04 /* Deployment+Debug */ = { 
     2074                        isa = XCBuildConfiguration; 
     2075                        buildSettings = { 
     2076                                COPY_PHASE_STRIP = YES; 
     2077                                GCC_ENABLE_FIX_AND_CONTINUE = NO; 
     2078                                GCC_GENERATE_DEBUGGING_SYMBOLS = NO; 
     2079                                PRODUCT_NAME = A52Codec; 
     2080                                ZERO_LINK = NO; 
     2081                        }; 
     2082                        name = "Deployment+Debug"; 
     2083                }; 
     2084                3D4BBE4D0B59EE0A000EDE04 /* Deployment+Debug */ = { 
     2085                        isa = XCBuildConfiguration; 
     2086                        buildSettings = { 
     2087                                COPY_PHASE_STRIP = YES; 
     2088                                GCC_ENABLE_FIX_AND_CONTINUE = NO; 
     2089                                GCC_GENERATE_DEBUGGING_SYMBOLS = NO; 
     2090                                GCC_MODEL_TUNING = G5; 
     2091                                GCC_PRECOMPILE_PREFIX_HEADER = YES; 
     2092                                GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h"; 
     2093                                INSTALL_PATH = "$(HOME)/bin"; 
     2094                                OTHER_LDFLAGS = ( 
     2095                                        "-framework", 
     2096                                        Foundation, 
     2097                                        "-framework", 
     2098                                        AppKit, 
     2099                                ); 
     2100                                PREBINDING = NO; 
     2101                                PRODUCT_NAME = PerianPanePListGenerator; 
     2102                                ZERO_LINK = NO; 
     2103                        }; 
     2104                        name = "Deployment+Debug"; 
     2105                }; 
     2106                3D4BBE4E0B59EE0A000EDE04 /* Deployment+Debug */ = { 
     2107                        isa = XCBuildConfiguration; 
     2108                        buildSettings = { 
     2109                                COPY_PHASE_STRIP = YES; 
     2110                                GCC_ENABLE_FIX_AND_CONTINUE = NO; 
     2111                                GCC_GENERATE_DEBUGGING_SYMBOLS = NO; 
     2112                                PRODUCT_NAME = CreatePrefPanePlist; 
     2113                                ZERO_LINK = NO; 
     2114                        }; 
     2115                        name = "Deployment+Debug"; 
     2116                }; 
     2117                3D4BBE4F0B59EE0A000EDE04 /* Deployment+Debug */ = { 
     2118                        isa = XCBuildConfiguration; 
     2119                        buildSettings = { 
     2120                                ARCHS = ( 
     2121                                        ppc, 
     2122                                        i386, 
     2123                                ); 
     2124                                COPY_PHASE_STRIP = YES; 
     2125                                GCC_ENABLE_FIX_AND_CONTINUE = NO; 
     2126                                GCC_GENERATE_DEBUGGING_SYMBOLS = NO; 
     2127                                GCC_MODEL_TUNING = G5; 
     2128                                GCC_PRECOMPILE_PREFIX_HEADER = YES; 
     2129                                GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h"; 
     2130                                INFOPLIST_FILE = "PerianPane-Info.plist"; 
     2131                                INSTALL_PATH = "$(HOME)/Library/Bundles"; 
     2132                                OTHER_LDFLAGS = ( 
     2133                                        "-framework", 
     2134                                        Foundation, 
     2135                                        "-framework", 
     2136                                        AppKit, 
     2137                                ); 
     2138                                PREBINDING = NO; 
     2139                                PRODUCT_NAME = PerianPane; 
     2140                                SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; 
     2141                                WRAPPER_EXTENSION = prefPane; 
     2142                                ZERO_LINK = NO; 
     2143                        }; 
     2144                        name = "Deployment+Debug"; 
     2145                }; 
     2146                3D4BBE500B59EE0A000EDE04 /* Deployment+Debug */ = { 
     2147                        isa = XCBuildConfiguration; 
     2148                        buildSettings = { 
     2149                                ARCHS = ( 
     2150                                        ppc, 
     2151                                        i386, 
     2152                                ); 
     2153                                COPY_PHASE_STRIP = YES; 
     2154                                FRAMEWORK_SEARCH_PATHS = ( 
     2155                                        "$(inherited)", 
     2156                                        "$(FRAMEWORK_SEARCH_PATHS_QUOTED_1)", 
     2157                                ); 
     2158                                FRAMEWORK_SEARCH_PATHS_QUOTED_1 = "\"$(SYSTEM_DEVELOPER_DIR)/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks\""; 
     2159                                GCC_ENABLE_FIX_AND_CONTINUE = NO; 
     2160                                GCC_ENABLE_OBJC_EXCEPTIONS = YES; 
     2161                                GCC_GENERATE_DEBUGGING_SYMBOLS = NO; 
     2162                                GCC_MODEL_TUNING = G5; 
     2163                                GCC_PRECOMPILE_PREFIX_HEADER = YES; 
     2164                                GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/AppKit.framework/Headers/AppKit.h"; 
     2165                                INFOPLIST_FILE = "PerianUpdateChecker-Info.plist"; 
     2166                                INSTALL_PATH = "$(HOME)/Applications"; 
     2167                                OTHER_LDFLAGS = ( 
     2168                                        "-framework", 
     2169                                        Foundation, 
     2170                                        "-framework", 
     2171                                        AppKit, 
     2172                                ); 
     2173                                PREBINDING = NO; 
     2174                                PRODUCT_NAME = PerianUpdateChecker; 
     2175                                WRAPPER_EXTENSION = app; 
     2176                                ZERO_LINK = NO; 
     2177                        }; 
     2178                        name = "Deployment+Debug"; 
     2179                }; 
     2180                3D4BBE510B59EE0A000EDE04 /* Deployment+Debug */ = { 
     2181                        isa = XCBuildConfiguration; 
     2182                        buildSettings = { 
     2183                                COPY_PHASE_STRIP = NO; 
     2184                                DEBUG_INFORMATION_FORMAT = dwarf; 
     2185                                STRIP_INSTALLED_PRODUCT = NO; 
     2186                        }; 
     2187                        name = "Deployment+Debug"; 
     2188                }; 
    19502189                61CB11040ACDF37C007994BD /* Development */ = { 
    19512190                        isa = XCBuildConfiguration; 
     
    23502589                                116C42560B5041BF00FB0738 /* Development */, 
    23512590                                116C42570B5041BF00FB0738 /* Deployment */, 
     2591                                3D4BBE500B59EE0A000EDE04 /* Deployment+Debug */, 
    23522592                                116C42580B5041BF00FB0738 /* Default */, 
    23532593                        ); 
     
    23602600                                11A70AC90A3D0111002058D4 /* Development */, 
    23612601                                11A70ACA0A3D0111002058D4 /* Deployment */, 
     2602                                3D4BBE490B59EE0A000EDE04 /* Deployment+Debug */, 
    23622603                                11A70ACB0A3D0111002058D4 /* Default */, 
    23632604                        ); 
     
    23702611                                11BA39B10A61E453008AF206 /* Development */, 
    23712612                                11BA39B20A61E453008AF206 /* Deployment */, 
     2613                                3D4BBE460B59EE0A000EDE04 /* Deployment+Debug */, 
    23722614                                11BA39B30A61E453008AF206 /* Default */, 
    23732615                        ); 
     
    23802622                                11D4ED480A3CE59A0066D45F /* Development */, 
    23812623                                11D4ED490A3CE59A0066D45F /* Deployment */, 
     2624                                3D4BBE510B59EE0A000EDE04 /* Deployment+Debug */, 
    23822625                                11D4ED4A0A3CE59A0066D45F /* Default */, 
    23832626                        ); 
     
    23902633                                61CB11040ACDF37C007994BD /* Development */, 
    23912634                                61CB11050ACDF37C007994BD /* Deployment */, 
     2635                                3D4BBE470B59EE0A000EDE04 /* Deployment+Debug */, 
    23922636                                61CB11060ACDF37C007994BD /* Default */, 
    23932637                        ); 
     
    24002644                                61CB11B10ACDF4FF007994BD /* Development */, 
    24012645                                61CB11B20ACDF4FF007994BD /* Deployment */, 
     2646                                3D4BBE480B59EE0A000EDE04 /* Deployment+Debug */, 
    24022647                                61CB11B30ACDF4FF007994BD /* Default */, 
    24032648                        ); 
     
    24102655                                83D1D6CB0B4C794900E09EC9 /* Development */, 
    24112656                                83D1D6CC0B4C794900E09EC9 /* Deployment */, 
     2657                                3D4BBE4F0B59EE0A000EDE04 /* Deployment+Debug */, 
    24122658                                83D1D6CD0B4C794900E09EC9 /* Default */, 
    24132659                        ); 
     
    24202666                                F59E0A0C0A670E950019A3F0 /* Development */, 
    24212667                                F59E0A0D0A670E950019A3F0 /* Deployment */, 
     2668                                3D4BBE4A0B59EE0A000EDE04 /* Deployment+Debug */, 
    24222669                                F59E0A0E0A670E950019A3F0 /* Default */, 
    24232670                        ); 
     
    24302677                                F5CFD1B90B5000AF00616865 /* Development */, 
    24312678                                F5CFD1BA0B5000AF00616865 /* Deployment */, 
     2679                                3D4BBE4D0B59EE0A000EDE04 /* Deployment+Debug */, 
    24322680                                F5CFD1BB0B5000AF00616865 /* Default */, 
    24332681                        ); 
     
    24402688                                F5CFD2660B500B9D00616865 /* Development */, 
    24412689                                F5CFD2670B500B9D00616865 /* Deployment */, 
     2690                                3D4BBE4E0B59EE0A000EDE04 /* Deployment+Debug */, 
    24422691                                F5CFD2680B500B9D00616865 /* Default */, 
    24432692                        ); 
     
    24502699                                F5CFD2EB0B5012E800616865 /* Development */, 
    24512700                                F5CFD2EC0B5012E800616865 /* Deployment */, 
     2701                                3D4BBE4C0B59EE0A000EDE04 /* Deployment+Debug */, 
    24522702                                F5CFD2ED0B5012E800616865 /* Default */, 
    24532703                        ); 
     
    24602710                                F5CFD3C20B50144E00616865 /* Development */, 
    24612711                                F5CFD3C30B50144E00616865 /* Deployment */, 
     2712                                3D4BBE4B0B59EE0A000EDE04 /* Deployment+Debug */, 
    24622713                                F5CFD3C40B50144E00616865 /* Default */, 
    24632714                        );