From e57c90084c5d1dd9f6cdb0bbbf8782dc4f369cda Mon Sep 17 00:00:00 2001 From: ImJezze Date: Sat, 20 Feb 2016 21:58:56 +0100 Subject: Quality and Performance improvements - HLSL now uses NPOT sized target surfaces (breaks compatibility with graphics cards based on R300/R400/NV30 and older) - HLSL target surfaces now have the size of the screen canvas - removed HLSL pre-scale factor - HLSL now uses a sharp bilinear interpolation to pre-scale textures to screen canvas size, based on [Themaister's] implementation - improved overall performance (based on the previously required pre-scale factor, you might notice a 5-50% speed-up depending on your graphics card, more if you used a higher pre-scale factor) - improved shadow mask quality (pixel-perfect) in screen-mode - fixed half source texel offset of bloom level alignment - removed ./hlsl/artwork_support folder - all shaders after pre-scale are now based on screen coordinate (workaground, till both raster and vector pass can work on texture coordinates) - disabled distortion shader for more than one screen and for artworks in full mode, does not affect artworks in copped mode (workaground, till both raster and vector pass can work on texture coordinates) - moved compute_texture_size() from texture_info to texture_manager (nw) --- src/osd/modules/render/d3d/d3dhlsl.h | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) (limited to 'src/osd/modules/render/d3d/d3dhlsl.h') diff --git a/src/osd/modules/render/d3d/d3dhlsl.h b/src/osd/modules/render/d3d/d3dhlsl.h index d949c1417c8..b0e502a761f 100644 --- a/src/osd/modules/render/d3d/d3dhlsl.h +++ b/src/osd/modules/render/d3d/d3dhlsl.h @@ -54,6 +54,7 @@ public: CU_ORIENTATION_SWAP, CU_ROTATION_SWAP, CU_ROTATION_TYPE, + CU_VECTOR_SCREEN, CU_NTSC_CCFREQ, CU_NTSC_A, @@ -292,9 +293,8 @@ public: void render_quad(poly_info *poly, int vertnum); bool register_texture(texture_info *texture); - bool register_prescaled_texture(texture_info *texture); - bool add_render_target(renderer* d3d, texture_info* info, int width, int height, int xprescale, int yprescale); - bool add_cache_target(renderer* d3d, texture_info* info, int width, int height, int xprescale, int yprescale, int screen_index); + bool add_render_target(renderer* d3d, texture_info* info, int width, int height, int target_width, int target_height); + bool add_cache_target(renderer* d3d, texture_info* info, int width, int height, int screen_index); void window_save(); void window_record(); @@ -379,13 +379,8 @@ private: int curr_screen; // current screen for render target operations int curr_frame; // current frame (0/1) of a screen for render target operations int lastidx; // index of the last-encountered target - bool write_ini; // enable external ini saving - bool read_ini; // enable external ini loading - int hlsl_prescale_x; // hlsl prescale x - int hlsl_prescale_y; // hlsl prescale y float bloom_dims[11][2]; // bloom texture dimensions int bloom_count; // count of used bloom textures - int preset; // preset, if relevant bitmap_argb32 shadow_bitmap; // shadow mask bitmap for post-processing shader texture_info * shadow_texture; // shadow mask texture for post-processing shader hlsl_options * options; // current options -- cgit v1.2.3-70-g09d2