* IN THE SOFTWARE.
***************************************************************************/
+#include "swr_context.h"
+#include "swr_public.h"
+#include "swr_screen.h"
+#include "swr_resource.h"
+#include "swr_fence.h"
+#include "gen_knobs.h"
+
#include "pipe/p_screen.h"
#include "pipe/p_defines.h"
#include "util/u_memory.h"
#include "gallivm/lp_bld_limits.h"
}
-#include "swr_public.h"
-#include "swr_screen.h"
-#include "swr_context.h"
-#include "swr_resource.h"
-#include "swr_fence.h"
-#include "gen_knobs.h"
-
#include "jit_api.h"
#include <stdio.h>
case PIPE_CAP_PRIMITIVE_RESTART:
return 1;
case PIPE_CAP_SHADER_STENCIL_EXPORT:
- return 1;
+ return 0;
case PIPE_CAP_TGSI_INSTANCEID:
case PIPE_CAP_VERTEX_ELEMENT_INSTANCE_DIVISOR:
case PIPE_CAP_START_INSTANCE:
case PIPE_CAP_TEXTURE_BARRIER:
return 0;
case PIPE_CAP_FRAGMENT_COLOR_CLAMPED:
- case PIPE_CAP_VERTEX_COLOR_UNCLAMPED: /* draw module */
- case PIPE_CAP_VERTEX_COLOR_CLAMPED: /* draw module */
+ case PIPE_CAP_VERTEX_COLOR_CLAMPED:
+ return 0;
+ case PIPE_CAP_VERTEX_COLOR_UNCLAMPED:
return 1;
case PIPE_CAP_MIXED_COLORBUFFER_FORMATS:
return 1;
case PIPE_CAP_USER_CONSTANT_BUFFERS:
case PIPE_CAP_STREAM_OUTPUT_PAUSE_RESUME:
case PIPE_CAP_STREAM_OUTPUT_INTERLEAVE_BUFFERS:
- case PIPE_CAP_TGSI_VS_LAYER_VIEWPORT:
return 1;
case PIPE_CAP_CONSTANT_BUFFER_OFFSET_ALIGNMENT:
return 16;
+ case PIPE_CAP_TGSI_VS_LAYER_VIEWPORT:
case PIPE_CAP_TGSI_CAN_COMPACT_CONSTANTS:
case PIPE_CAP_VERTEX_BUFFER_OFFSET_4BYTE_ALIGNED_ONLY:
case PIPE_CAP_VERTEX_BUFFER_STRIDE_4BYTE_ALIGNED_ONLY:
{PIPE_FORMAT_B5G5R5X1_UNORM, B5G5R5X1_UNORM},
{PIPE_FORMAT_R10G10B10A2_USCALED, R10G10B10A2_USCALED},
{PIPE_FORMAT_R11G11B10_FLOAT, R11G11B10_FLOAT},
- {PIPE_FORMAT_R9G9B9E5_FLOAT, R9G9B9E5_SHAREDEXP},
+ {PIPE_FORMAT_R9G9B9E5_FLOAT, (SWR_FORMAT)-1},
{PIPE_FORMAT_Z32_FLOAT_S8X24_UINT, R32_FLOAT_X8X24_TYPELESS}, // z
{PIPE_FORMAT_R1_UNORM, (SWR_FORMAT)-1},
{PIPE_FORMAT_R10G10B10X2_USCALED, R10G10B10X2_USCALED},
res->alignedHeight = alignedHeight;
}
- res->row_stride[level] = alignedWidth * finfo.Bpp;
- res->img_stride[level] = res->row_stride[level] * alignedHeight;
+ res->row_stride[level] = util_format_get_stride(fmt, alignedWidth);
+ res->img_stride[level] =
+ res->row_stride[level] * util_format_get_nblocksy(fmt, alignedHeight);
res->mip_offsets[level] = total_size;
if (pt->target == PIPE_TEXTURE_3D)
PUBLIC
struct pipe_screen *
-swr_create_screen(struct sw_winsys *winsys)
+swr_create_screen_internal(struct sw_winsys *winsys)
{
struct swr_screen *screen = CALLOC_STRUCT(swr_screen);
return &screen->base;
}
-struct sw_winsys *
-swr_get_winsys(struct pipe_screen *pipe)
-{
- return ((struct swr_screen *)pipe)->winsys;
-}
-
-struct sw_displaytarget *
-swr_get_displaytarget(struct pipe_resource *resource)
-{
- return ((struct swr_resource *)resource)->display_target;
-}