r300_state_inlines.h revision ddc6ee316cd7ca07853efc615cd2681f3a1232d4
1ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt/* 2ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt * Copyright 2009 Joakim Sindholt <opensource@zhasha.com> 3ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt * 4ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt * Permission is hereby granted, free of charge, to any person obtaining a 5ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt * copy of this software and associated documentation files (the "Software"), 6ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt * to deal in the Software without restriction, including without limitation 7ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt * on the rights to use, copy, modify, merge, publish, distribute, sub 8ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt * license, and/or sell copies of the Software, and to permit persons to whom 9ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt * the Software is furnished to do so, subject to the following conditions: 10ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt * 11ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt * The above copyright notice and this permission notice (including the next 12ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt * paragraph) shall be included in all copies or substantial portions of the 13ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt * Software. 14ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt * 15ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL 18ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt * THE AUTHOR(S) AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, 19ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR 20ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE 21ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt * USE OR OTHER DEALINGS IN THE SOFTWARE. */ 22ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt 23ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt#ifndef R300_STATE_INLINES_H 24ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt#define R300_STATE_INLINES_H 25ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt 26ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt#include "pipe/p_format.h" 27ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt 28ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt#include "r300_reg.h" 29ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt 30ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholtstatic INLINE uint32_t r300_translate_colorformat(enum pipe_format format) 31ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt{ 32ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt switch (format) { 33ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt case PIPE_FORMAT_A8R8G8B8_UNORM: 34ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt return R300_COLOR_FORMAT_ARGB8888; 35ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt case PIPE_FORMAT_I8_UNORM: 36ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt return R300_COLOR_FORMAT_I8; 37ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt case PIPE_FORMAT_A1R5G5B5_UNORM: 38ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt return R300_COLOR_FORMAT_ARGB1555; 39ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt case PIPE_FORMAT_R5G6B5_UNORM: 40ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt return R300_COLOR_FORMAT_RGB565; 41ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt /* XXX Not in pipe_format 42ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt case PIPE_FORMAT_A32R32G32B32: 43ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt return R300_COLOR_FORMAT_ARGB32323232; 44ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt case PIPE_FORMAT_A16R16G16B16: 45ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt return R300_COLOR_FORMAT_ARGB16161616; */ 46ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt case PIPE_FORMAT_A4R4G4B4_UNORM: 47ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt return R300_COLOR_FORMAT_ARGB4444; 48ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt /* XXX Not in pipe_format 49ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt case PIPE_FORMAT_A10R10G10B10_UNORM: 50ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt return R500_COLOR_FORMAT_ARGB10101010; 51ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt case PIPE_FORMAT_A2R10G10B10_UNORM: 52ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt return R500_COLOR_FORMAT_ARGB2101010; 53ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt case PIPE_FORMAT_I10_UNORM: 54ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt return R500_COLOR_FORMAT_I10; */ 55ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt default: 56ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt debug_printf("r300: Implementation error: " \ 57ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt "Got unsupported color format %s in %s\n", 58ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt pf_name(format), __FUNCTION__); 59ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt break; 60ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt } 61ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt 62ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt return 0; 63ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt} 64ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt 65ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholtstatic INLINE uint32_t r300_translate_zsformat(enum pipe_format format) 66ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt{ 67ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt switch (format) { 68ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt case PIPE_FORMAT_Z16_UNORM: 69ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt return R300_DEPTHFORMAT_16BIT_INT_Z; 70ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt /* XXX R300_DEPTHFORMAT_16BIT_13E3 anyone? */ 71ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt case PIPE_FORMAT_Z24S8_UNORM: 72ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt return R300_DEPTHFORMAT_24BIT_INT_Z_8BIT_STENCIL; 73ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt default: 74ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt debug_printf("r300: Implementation error: " \ 75ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt "Got unsupported ZS format %s in %s\n", 76ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt pf_name(format), __FUNCTION__); 77ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt break; 78ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt } 79ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt 80ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt return 0; 81ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt} 82ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt 83ddc6ee316cd7ca07853efc615cd2681f3a1232d4Joakim Sindholt#endif /* R300_STATE_INLINES_H */ 84