<<  ObjectARX Best Practices Управление инвестициями в PM SAP Best Practices for Chemicals  >>
Cross Platform Development Best Practices
Cross Platform Development Best Practices
360 Custom CPU
360 Custom CPU
Cross Platform Render Example (ctd
Cross Platform Render Example (ctd
Universal Gaming Controller
Universal Gaming Controller
Картинки из презентации «Cross Platform Development Best Practices» к уроку экономики на тему «Компании»

Автор: . Чтобы познакомиться с картинкой полного размера, нажмите на её эскиз. Чтобы можно было использовать все картинки для урока экономики, скачайте бесплатно презентацию «Cross Platform Development Best Practices.ppt» со всеми картинками в zip-архиве размером 814 КБ.

Cross Platform Development Best Practices

содержание презентации «Cross Platform Development Best Practices.ppt»
Сл Текст Сл Текст
1 24system memory Required for
2Cross Platform Development Best render-to-texture and presentation to the
Practices. Matt Lee, Kev Gee Microsoft screen Can perform MSAA sample averaging
Game Technology Group. or resolve individual samples Can perform
3Agenda. Code Considerations CPU format conversions and biasing Cannot do
Considerations GPU Considerations IO rescaling or resampling of any kind This
Considerations Content Considerations Data can Impact your Xbox 360 engine design as
Build System Geometry Formats Texture it adds an extra step to common
Formats Shaders Audio Considerations. operations.
4Compiler Comparison. VS 2005 front end 25Agenda. Code Considerations CPU
used for both platforms Preprocessor Considerations GPU Considerations IO
benefits both platforms Debugger Considerations Content Considerations
experience is the same Full 2005 IDE Geometry Textures Shaders Audio data.
support coming Xbox 360 optimizing back 26Use Native File I/O Routines. Only
end added with XDK install Single solution native routines support key features:
/ MSBuild file can target both platforms. Asynchronous I/O Completion routines
5PC CPUs. Intel Pentium D / AMD Prefer CreateFile and ReadFile Guaranteed
Athlon64 X2 Programming Model 2 Cores as fast or faster than any other
running @ around 3.20 GHz 12-KB Execution alternatives Avoid fopen, fread, C++
trace cache 16-KB L1 cache, 1 MB L2 cache iostreams.
Deep Branch Prediction Dynamic data flow 27Use Asynchronous File I/O. File
analysis Speculative Execution read/write operations block by default
Little-endian byte ordering SIMD Async operations allows the game to do
instructions Quad Core announced for early other interesting work CreateFile with
6360 Custom CPU. Custom IBM Processor 3 FILE_FLAG_NO_BUFFERING, too Guarantees no
64-bit PowerPC cores running at 3.2 GHz intermediate buffering Use OVERLAPPED
Two hardware threads per core 32-KB L1 struct to determine when operation is
instruction cache & data cache, per complete See CreateFile docs for details.
core Shared 1-MB L2 cache 128-byte cache 28Memory Mapped File I/O. Fastest way to
lines on all caches Big-endian byte load data on Windows However, the 32 bit
ordering VMX 128 SIMD Lots of Registers. address space is getting tight This is a
7Performance Tools. Profiling great 64 bit feature add! ? Memory Mapped
approaches are very similar between PC and I/O not supported on 360 No HDD backed
Xbox 360 PIX for Xbox 360 & PIX for Virtual Memory management system.
Windows Being developed by the same team 29Universal Gaming Controller. XInput is
now Use instrumented tools on Xbox 360 the same API for Xbox 360 and Windows The
XbPerfView / Tracedump Xbox 360 does not Microsoft universal controller is a
have a sampling profiler yet Use PC reference design which can be leveraged by
profiling tools Intel VTune / AMD Code other hardware manufacturers XP Driver
Analyst / VS Team System Profiler Attend available from Windows Update Support is
the Performance Hands on training! built in to Xbox 360 and Windows Vista.
8Focus Your Efforts. Use performance 30Agenda. Code Considerations CPU
tools to guide work Areas where we have Considerations GPU Considerations IO
seen platform specific efforts reap Considerations Content Considerations Data
rewards Single Data Pass engine design Build System Geometry Formats Texture
High Frequency Game API Layers Use your Formats Shaders Audio Considerations.
profiler tools to target the hot spots 31Data Build System. Add a data build /
Math Library - Bespoke vs XGMath vs processing phase to your production system
D3DXMath. Compile, optimize and compress data
9Impact on Code Design. Designing Cross according to multiple target platform
platform APIs Use of virtual Functions requirements Easier and faster to handle
Parameter passing mechanisms Pass by endian-ness and other format conversions
reference vs. pass by value Typedef vector offline Data packing process can occur
types and intrinsics Math Library Design here too Invest time in making the build
Case Study Use of inlining. fast Artists need to rapidly iterate to
10Use of Virtual Functions. Be careful make quality content Incremental builds
when using virtual functions to hide can really help reduce the buildtime Try
platform differences Virtual function the XNA build tools Copies of XNA build
performance on Xbox 360 Adds branch CTP are available NOW!
instruction which is always mispredicted! 32Geometry Compression. Offline
Compiler limited in optimizing these Make Compression of Geometry Provides wins
a concrete implementation for Xbox 360 across all platforms Disk I/O wins as well
Avoid virtual functions in inner loops. as GPU wins The compression approach is
11Cross Platform Render Example. likely to be target specific PC is usually
12Cross Platform Render Example (ctd.). a superset of the consoles in this area
D3D9 & D3D10 implementations subclass D3D9 CAPs / limitations to consider 16 bit
for specialization. class IRenderSystem { Normals - D3DDECLTYPE_FLOAT16_2.
…… public: #if !defined(_XBOX) virtual 33Compressing Textures. Wide variety of
void Draw()=0; #else void Draw(); #endif Texture Compression Tools ATI
}; void IRenderSystem::Draw() { // 360 Compressinator DirectX SDK DDS tools
Implementation …… }. NVIDIA – Photoshop DDS Export Compression
13Beware Big Constructors. Ctors can tools for 360 (xgraphics.lib) Supports
dominate execution time Ctors often hidden endian swap of texture formats Build your
to casual observer Copy ctors add objects own too! Make them fit your content.
to containers Arrays of C++ objects are 34Texture Formats. DXT* /
constructed Overloaded operators may DXGI_FORMAT_BC* BC == Block Compressed
construct temporaries Consider: should Standard DXT* formats across all platforms
ctor init data? Example: matrix class DXN / DXGI_FORMAT_BC5 / BC5u 2-component
zeroing all data Prefer array format with 8 bits of precision per
initialization = { … }. component Great for normal maps DXT3A /
14Inlining. Careful inlining is in DXT5A Single component textures made from
general a Good Thing Plan to spend time a DXT3/DXT5 alpha block 4 bits of
ensuring the compiler is inlining the precision Xbox 360 / D3D9 Only.
right stuff Use Perf Tools such as VTune / 35Texture Arrays. Texture arrays
Trace recorder Try the “inline any generalized version of cube maps D3D9
suitable” option Enable link-time code emulate using a texture atlas Xbox 360 Up
generation Consider profile-guided to 64 surfaces within a texture, optional
optimization Use __forceinline only where MIPmaps for each surface Surface is
necessary. indexed with a [0..1] z coordinate in a 3D
15Consider Passing Native Types by texture fetch D3D10 supports this as a
Value. Xbox 360 has large registers 64 bit standard feature Up to 512 surfaces within
Native PC does too Pass and return these a texture Bindable as rendertarget, with
types by value int, __int64, float per-primitive array index selection.
Consider these types if targeting SSE / 36Custom Vertex Fetch / Vertex Texture.
VMX __m128 / __vector4, XMVECTOR, XMMATRIX D3D9 Vertex Texture implementations use
Pass structs by pointer or reference Help intrinsics tex2dlod() 360 supports
the compiler using _restrict. explicit instructions for this D3D10
16Math Library Header (Xbox 360). #if supports this as a standard feature Load()
defined( _XBOX ) #include from buffer (VB, IB, etc.) at any stage
<ppcintrinsics.h> #include Sample() from texture at any stage.
<vectorintrinsics.h> typedef 37Effects. D3DX FX and FX Lite co-exist
__vector4 XVECTOR; typedef const XVECTOR easily #define around the texture sampler
XVECTOR_PARAM; typedef XVECTOR& differences Preshaders are not supported
XVECTOR_OUTPARAM; #define XMATHAPI inline on FX Lite We advise that these should be
#define VMX128_INTRINSICS #endif. Pass by optimized to native code for D3D9 Effects.
value. 38HLSL Development. Set up your engine
17Math Library Header (Windows). #if and tools for rapid shader development and
defined( _WIN32 ) #include iteration Compile shaders offline for
<xmmintrin.h> typedef __m128 performance, maybe allow run-time
XVECTOR; typedef const XVECTOR& recompilation during development Be
XVECTOR_PARAM; typedef XVECTOR& careful with shader generation tools Perf
XVECTOR_OUTPARAM; #define XMATHAPI inline needs to be considered Schedule / Plan
#define SSE_INTRINSICS #endif. Pass by work for this.
reference. 39Cross-Platform HLSL Consideration.
18Math Library Function. XVECTOR Texture access instruction considerations
XMATHAPI XVectorAdd( XVECTOR_PARAM vA, Xbox 360 has native tfetch / getWeights
XVECTOR_PARAM vB ) { #if defined( features Constant texel offsets (-8.0 to
VMX128_INTRINSICS ) return __vaddfp( vA, 7.5 in 0.5 increments) Independent of
vB ); #elif defined( SSE_INTRINSICS ) texture size Direct3D 10 supports integer
return _mm_add_ps( vA, vB ); #endif }. texture offsets when fetching Direct3D 10
19Threading. Why Multithread? Necessary supports getdimensions() natively
to take full advantage of modern CPUs Equivalent to getWeights Direct3D 9 can
Attend the Multi-threading talk later emulate tfetch & getWeights behavior
today Covers synchronization prims and using a shader constant for texture
lockless sync methods See Also: Talks from dimensions.
Intel and AMD (GDC2005 / GDC-E) OpenMP – 40HLSL Example. float2 g_invTexSize =
C, not C++, useful in limited float2( 1/512.0f, 1/512.0f); float2
circumstances Concur – C++, see getWeights2D( float2 texCoord ) { return frac( texCoord / g_invTexSize ); } float4
LN309_files/Default.htm#nopreload=1&au tex2DOffset( sampler t, float2 texCoord,
ostart=1. float2 offset ) { texCoord += offset *
20D3D Architectural Differences. D3D9 g_invTexSize; return tex2D( t, texCoord );
draw call cost is higher on Windows than }.
on Xbox 360 360 is optimized for a Single 41Shader management. Find a balance
GPU target D3D10 improves draw call cost between ?bershaders and specialized shader
by design on Windows Very important to libraries Dynamic/static branching versus
carefully manage the number of batches static compilation Small shader libraries
submitted This can have an impact on can be built and stored inside a single
content creation This work will help with Effect file One technique per shader
360 performance too. configuration Larger shader libraries Hash
21Agenda. Code Considerations CPU table populated with configurations
Considerations GPU Considerations IO Streaming code can load could shader
Considerations Content Considerations Data groups on demand Profile-guided content
Build System Geometry Formats Texture generation Avoid compiling shaders at run
Formats Shaders Audio Considerations. time Compiled shaders compress very well.
22PC GPUs. Wide variety of available 42Audio Considerations. XACT (Microsoft
Direct3D9 H/W CAPs and Shader Models Cross-Platform Audio Creation Tool) API
abstract over feature differences GPUs and authoring tool parity: author once,
that are approximately equivalent deploy to both platforms Primary
performance to the Xbox 360 GPU ATi X1900 difference = wave compression ADPCM on
/ NVidia 7800 GTX Shader Model 3.0 support Windows vs. Xbox 360 native XMA support
Direct3D10 Standardizes feature set H/W XMA: controllable quality setting (varies,
Scales on performance instead. typically ~6-14:1) ADPCM: Static ~3.5:1
23Xbox 360 Custom GPU. Direct3D 9.0+ compression Likely need to trade memory
compatible High-Level Shader Language for bit rate. On Windows, can use hard
(HLSL) 3.0+ support 10 MB Embedded DRAM disk streaming to balance lower
Frame Buffer with 256 GB/sec bandwidth compression rates if needed.
Hardware scaling for display resolution 43Call To Action! Design your games,
matching 48 shader ALUs shared between engines and production systems with cross
pixel and vertex shading (unified shaders) platform development in mind (PC / Xbox
Up to 8 simultaneous contexts (threads) 360 / Other) Invest in making your data
in-flight at once Changing shaders or build system fast Take advantage of each
render state can be cheap, since a new platforms strengths Target a D3D10 content
context can be started up easily Hardware design point and fallback to D3D9+, D3D9,
tesselator N-patches, triangular patches, … Provide feedback on how we can make
and rectangular patches For non continuous production easier Attend the XACT, HLSL,
/ adaptive cases trade memory for this SM4.0 and Performance Hands On Labs.
feature on PC systems. 44Questions?
24Explicit Resolve Control. Copies 45
surface data from EDRAM to a texture in
Cross Platform Development Best Practices.ppt
cсылка на страницу

Cross Platform Development Best Practices

другие презентации на тему «Cross Platform Development Best Practices»

«Компания Индиго» - Страховая компания “индиго”. Кратко о СК “Индиго”: Создана 4 сентября 2006 года. Лицензии. СК “Индиго” на страховом рынке Украины. Контактная информация. ОДО “Страховая компания “Индиго” Центральный офис: ул. СК “Индиго” обеспечивает максимально высокий уровень обслуживания своих Клиентов. Имеет лицензии на 16 добровольных и 6 обязательных видов страхования.

«Салон красоты» - Подключение оборудования. Всё остальное - при посещении! Ценовая политика. Выгрузка данных. Учет денежных средств. Наши клиенты. Документ заполняется автоматически по данным ежедневных отчетов сотрудников об отработанном времени. База данных по всем клиентам салона с подробной информацией о каждом. Предварительная запись.

«Услуги» - Доходы от Интернет-услуг и IP-телефонии. Инвестиции в развитие новых услуг. Ввод номерной емкости (ГТС, СТС). Монтированная емкость. Прибыль от продаж. Ввод линий передачи. Услуги мультисервисных сетей. Ввод каналов мн/мг связи. Интернет и IP-телефония. Развитие Интернет-услуг. Развитие сетей кабельного телевидения.

«Тормозная жидкость» - – Гарантия жизни. 8. Аналитическая справка. OEM тормозные жидкости. Фирменная транспортная коробка фасовка продукта 455 и 910 гр. 7. Сравнительный анализ. 9. Дорожные испытания. 4. Разработка компании Тосол-Синтез. обновленный образ торговой марки ROSDOT. Ценовое позиционирование тормозных жидкостей dot4.

«ТНК программа» - Договор оказания услуг. Отчеты Презентации Экзамены. Ротации. Удержание специалистов. 3 принципа. Технический эксперт. География присутствия ТНК-ВР. Теоретические курсы. Общий сервер. Типовая карта карьерного роста и профессионального развития МС. Стажировки на объектах. ЦЭП и ТР. Руководитель программы Наставники программы.

«Лакротэн» - Специфические требования к ЛКМ для печати по ДВП. Характеристики новых дисперсий для отделки ДВП. Характеристика дисперсий акриловых сополимеров, растворимых в щелочах. Определяются. Дисперсии «Лакротэн» в водоосновных ЛКМ для печати по ДВП. Цветопередающие свойства растворенных полиакрилатов. Оргхимпром Производство акриловых дисперсий.


40 презентаций о компаниях


125 тем
Картинки > Презентации по экономике > Компании > Cross Platform Development Best Practices